[HttpPost] 属性のみを使用して HTTP GET リクエストを制限することはできますか?
アクション メソッドで [HttpPost] 属性を使用して HTTP GET リクエストを制限するときに、JsonRequestBehavior が必要なのはなぜですか?
MVC はデフォルトで「GET 拒否」ポリシーを実装するため、JsonRequestBehavior は非常に重要です。これは、悪意のある攻撃者が HTTP GET リクエスト経由で送信された JSON データを傍受する可能性がある JSON ハイジャックを防ぐためのセキュリティ対策です。
提供されたコード例では、[HttpPost] を使用して HTTP GET リクエストを効果的にブロックします。ただし、メソッドが機密データを返す場合、JSON ハイジャック攻撃に対して依然として脆弱である可能性があります。セキュリティ リスクを軽減しながら HTTP GET リクエストを明示的に許可するには、JsonRequestBehavior.AllowGet を呼び出す必要があります。
その他の洞察:
MVC の「GET 拒否」ポリシーは、開発者が HTTP GET リクエストを介して JSON 経由で機密データを公開することの影響を慎重に検討することを奨励することを目的としています。返されるデータが機密でない場合は、JsonRequestBehavior.AllowGet を使用して GET リクエストを許可しても安全であると考えられます。
また、最近のブラウザーの更新により、JSON ハイジャックはそれほど重大なセキュリティ問題ではなくなりました。ただし、潜在的な脅威を軽減するために、HTTP GET リクエストで JSON 経由で機密データを返さないようにすることをお勧めします。
以上がASP.NET MVC での JSON ハイジャックを防ぐには「[HttpPost]」だけで十分ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。