私は、ユーザーがショッピングリストを作成したり、ショッピングリストを表示したり、ショッピングリストを共有したりできるシンプルなショッピングリストアプリケーションを用意しています。ユーザーが買い物リストを作成していないということは、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. ミドルウェアでステータスコード304を返す
- 5. URLへのリクエストによって返されたhttpステータスコードは何ですか?
- 6. 返信ステータスコード汎用タイプのメソッドから無許可
- 7. Rest API HTTPステータスコードを返す
- 8. ステータスコード408を返すプロキシメッシュプロキシ
- 9. 失効したデータを返す可能性のあるGETリクエストに使用するHTTPステータスコードは何ですか?
- 10. は、サーバーからステータスコード403を受信:VirusFound
- 11. Webpackはステータスコード2を返します
- 12. apicontrollerアクションで403ステータスコードを返す方法
- 13. 変更を加えずにPATCH要求を返す必要があるステータスコードは何ですか?
- 14. APIステータスコードを送信する理由
- 15. HTTPステータスコード308の処理は何ですか?
- 16. ASP.NET WebApiトークンでログイン返品ステータスコードを区別する方法は?
- 17. PayPalの参照取引 - ステータスコード400の返信
- 18. 必要なヘッダーがない場合に返す最も適切なHTTPステータスコードは何ですか?
- 19. rangeErrorとは何ですか:無効なステータスコード:0の意味ですか?
- 20. Qt QNetworkAccessManagerは常に空のデータを返し、ステータスコードは0です
- 21. なぜlogin_requiredデコレータは302ステータスコードを返しますか?
- 22. ASP.net - サーバーから返されたステータスコード:500
- 23. SVNのEステータスコードは何を意味していますか?
- 24. django-pistonでステータスコードが200以外のオブジェクトを返す方法は?
- 25. ウェブページが異なるリクエストで異なるステータスコードを返します
- 26. PHPの返信先ヘッダは何をしますか?
- 27. 305 HTTPステータスコードとは何ですか?それを正しく使うには?
- 28. rails apiでブロックされたユーザープロファイルに最適なHTTPステータスコードは何ですか?
- 29. メンテナンスページリダイレクトのステータスコードは適切ですか?
- 30. サーバーから返されたステータスコードは次のとおりです。500
ユーザーとの相対的なパスを設定します。 '/ users/{userId}/lists/{listId}'となります。 '/ users/{user1Id}/lists/{user2listId}'が404であるか、/ users/{user2Id}/lists/{anything} 'にアクセスするuser1が403であることは間違いありません。意味的に、現在のユーザーはそれを見るべきではありません。それは403です。 – jonrsharpe