[解決済み】なぜJsonRequestBehaviorが必要なのでしょうか?
質問
なぜ
Json Request Behavior
が必要ですか?
を制限したい場合
HttpGet
リクエストをアクションに送ることができます。
[HttpPost]
属性
例
[HttpPost]
public JsonResult Foo()
{
return Json("Secrets");
}
// Instead of:
public JsonResult Foo()
{
return Json("Secrets", JsonRequestBehavior.AllowGet);
}
なぜそうしないのか
[HttpPost]
十分ですか?
なぜフレームワークがバグるのか?
JsonRequestBehavior.AllowGet
について
JsonResult
を追加しています。
HttpPost
属性を持つ。
どのように解決するのですか?
MVCのデフォルトは
DenyGet
を許可すると、JSON リクエストを含む非常に特殊な攻撃から保護される可能性が高くなります。
HTTP GET
の露出は、その発生を許可する前に考慮されます。
これは、手遅れになる可能性のある後発組とは対照的です。
注意: アクションメソッドが機密データを返さないのであれば、取得を許可しても問題ないはずです。
Wrox ASP.NET MVC3 bookからさらに詳しい情報を得ることができます。
デフォルトでは、ASP.NET MVCフレームワークでは、次のようなレスポンスはできません。 HTTP GET リクエストに JSON ペイロードを指定した場合。JSON を送信する必要がある場合 GET に対する応答として、この動作を明示的に許可する必要があります。 JsonRequestBehavior.AllowGetをJsonの第2パラメータとして使用します。 メソッドを使用します。しかし、悪意のあるユーザがアクセスする可能性があります。 JSONハイジャックとして知られるプロセスを通じて、JSONペイロードを提供します。あなたは GETリクエストでJSONを使用して機密情報を返したい。この点については のPhilの投稿を参照してください。 http://haacked.com/archive/2009/06/24/json-hijacking.aspx/ または このSOの記事
Haack, Phil (2011). プロフェッショナル ASP.NET MVC 3 (Wrox Programmer to Wrox) Programmer) (Kindle Locations 6014-6020). Wrox. Kindle版.
関連するStackOverflowの質問
関連
-
[解決済み】C#で四捨五入する方法
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] EqualsメソッドがオーバーライドされたときにGetHashCodeをオーバーライドすることが重要な理由は何ですか?
-
[解決済み] C#でHashtableよりDictionaryが好まれる理由とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み] JSONハイジャックはモダンブラウザでも問題ないのか?