[HttpPost]
属性は、HTTPリクエストタイプを制限することである程度の保護を提供しますが、JSON応答を完全に保護するには不十分です。 JsonRequestBehavior
クラスは、JSONハイジャックのリスクを軽減する上で重要です。これは、HTTP Get Requestsを介して公開されたJSONデータを悪用するセキュリティの脆弱性です。
JSON応答については、
>>>>この攻撃に対する重要な保護を提供します。 アクションメソッドが機密情報を処理する場合、JSONハイジャックは重大なセキュリティリスクをもたらします。 デフォルトの動作をオーバーライドする前に、アクセスを許可することの意味を慎重に評価します。
DenyGet
DenyGet
[HttpPost]
属性は、HTTPゲットリクエストをブロックすることを目的としていますが、その制限により、JSONハイジャックに対して脆弱になります。 最新のブラウザ(Firefox 21、Chrome 27、およびIE 10を含む)は、JSONの応答を敏感であると本質的に扱わないため、悪意のあるアクターが
[HttpPost]
有効にするリクエストを安全に有効にする:[HttpPost]
アクションメソッドが機密データを処理しない場合、GETリクエストが受け入れられる可能性があります。 ただし、2つの主な理由で、明示的なパラメーターを使用することはベストプラクティスのままです。
それは、Get Requestsが一般的に機密データ処理には不適切であるという明確な兆候として機能します。粒状制御が可能になり、JSONデータへのアクセスを取得する必要がある特定のアクションに対してのみJsonRequestBehavior.AllowGet
のみを選択的に無効にすることができます。
DenyGet
以上がJSONハイジャック:JsonRequestBehaviorが安全なJSON応答に不可欠なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。