私は、ユーザーがショッピングリストを作成したり、ショッピングリストを表示したり、ショッピングリストを共有したりできるシンプルなショッピングリストアプリケーションを用意しています。ユーザーが買い物リストを作成していないということは、x
と言うことができますが、それは別のユーザーによって作成されたためデータベースにあります。このショッピングリストを作成しなかったユーザーにはどのステータスコードを返す必要がありますか?データベース内にあるので403
である必要がありますが、このユーザーには閲覧権限がありません。また、ショッピングリストのこのユーザーコレクションには存在しないため、404
である必要があります。返信するステータスコードは何ですか?
答えて
あなたは404を返す必要があります:ユーザーが別のユーザーによって所有されているのと同じIDを持つ別のカートについて知るべきではありません。
戻り値403はセキュリティフローと見なされます。悪意のあるハッカーは連続するユーザーIDを使用してAPIを起動し、カートを所有するユーザーが見つかるまでセキュリティを向上させることができます。
この場合、ショッピングリストはデータベースに追加され、shopping_listオブジェクトの 'owned_by'フィールドを使用してユーザーに関連します。ショッピングカートのようなものはありませんユーザー。あなたの答えはこの場合も同じですか? –
はい、私の答えは、あなたがこのオブジェクトを与えるために選択した名前に関係なく、まだ立っています。 – alfasin
カート所有者IDだけでなく 'owned_by'を確認するようにクエリを設定できるので、実際に実装する方が簡単です。つまり、クエリは空の結果セットを返し、アプリケーションは404で「自然に」応答します。 – alfasin
受け入れられた回答は完全に問題ありませんが、代わりに、IDが存在しない場合でもすべてのIDに対して403を送信することができます。そうすれば、セキュリティホールもありません。私はユーザが認証によって特定されていると仮定しており、/ lists/200がそれらのものであることを知っているので、200までのIDがおそらく存在します。/list/50と/ lists/50000000の両方が両方とも403を返した場合、ユーザーは誰も賢明ではありません。
この動作は、404プロキシを公開しているが403レスポンスを公開することはできないような、キャッシュプロキシのような仲介業者の面では安全かもしれません。
- 1. アラモファイア返信ステータスコードの問題
- 2. バックティックオペレーターの返信ステータスコード5(または1280)
- 3. HTTPステータスコード000とは何ですか?
- 4. 期限切れのパスワードで返される良いhttpステータスコードは何ですか?
- 5. ミドルウェアでステータスコード304を返す
- 6. URLへのリクエストによって返されたhttpステータスコードは何ですか?
- 7. cXMLで別のステータスコードを返すには、HTTPステータスコードも返す必要がありますか? CXMLで
- 8. 失効したデータを返す可能性のあるGETリクエストに使用するHTTPステータスコードは何ですか?
- 9. 返信ステータスコード汎用タイプのメソッドから無許可
- 10. LinkedIn APIのフォロー中のフォロワーからの返信httpステータスコード500
- 11. Rest API HTTPステータスコードを返す
- 12. ステータスコード408を返すプロキシメッシュプロキシ
- 13. は、サーバーからステータスコード403を受信:VirusFound
- 14. RestベースのJava Webアプリケーションでサービスクラスからhttpステータスコードを返す適切な方法は何ですか?
- 15. Webpackはステータスコード2を返します
- 16. C#でステータスコードまたは複合オブジェクトを返す理想的な方法は何ですか?
- 17. apicontrollerアクションで403ステータスコードを返す方法
- 18. Lagomサービスコールでステータスコードを返す方法
- 19. 変更を加えずにPATCH要求を返す必要があるステータスコードは何ですか?
- 20. HTTPステータスコード308の処理は何ですか?
- 21. CORSプリフライトリクエストの適切なステータスコードは何ですか?
- 22. APIステータスコードを送信する理由
- 23. Ajaxリクエストはエラーを返しますが、ステータスコードは200です。OK
- 24. ASP.NET WebApiトークンでログイン返品ステータスコードを区別する方法は?
- 25. 無効なリンクがクリックされたときに返されるステータスコードは何ですか?
- 26. rangeErrorとは何ですか:無効なステータスコード:0の意味ですか?
- 27. 必要なヘッダーがない場合に返す最も適切なHTTPステータスコードは何ですか?
- 28. PayPalの参照取引 - ステータスコード400の返信
- 29. Qt QNetworkAccessManagerは常に空のデータを返し、ステータスコードは0です
- 30. なぜlogin_requiredデコレータは302ステータスコードを返しますか?
ユーザーとの相対的なパスを設定します。 '/ users/{userId}/lists/{listId}'となります。 '/ users/{user1Id}/lists/{user2listId}'が404であるか、/ users/{user2Id}/lists/{anything} 'にアクセスするuser1が403であることは間違いありません。意味的に、現在のユーザーはそれを見るべきではありません。それは403です。 – jonrsharpe