22


「潜在的に危険なRequest.Form値がクライアントから検出されました」という問題を解決しようとしていますが、SOが回答し、 ScottHanselmanが設定を推奨しています。

<httpRuntime requestValidationMode="2.0" />

Web.config内(問題のあるメソッドに属性を追加するとともに)。
これにより検証モードがASP.NET2.0に変更されることに気付きましたが、それはどういう意味ですか?
また、この変更には、注意すべき副作用がありますか?

ありがとう。

4

2 に答える 2

15

MSDN の HttpRuntimeSection.RequestValidationMode Property の説明を確認してください。

2.0 . リクエストの検証は、すべての HTTP リクエストではなく、ページに対してのみ有効になります。さらに、構成ファイル内のページ要素 (存在する場合) または個々のページ内の @ Page ディレクティブの要求検証設定を使用して、検証するページ要求が決定されます。

于 2011-12-07T06:23:06.937 に答える
3

ASP.NETリクエストの検証をご覧ください>

ASP.NETの要求検証機能は、クロスサイトスクリプティング(XSS)攻撃に対する一定レベルのデフォルトの保護を提供します。以前のバージョンのASP.NETでは、要求の検証はデフォルトで有効にされていました。ただし、ASP.NETページ(.aspxファイルとそのクラスファイル)にのみ適用され、それらのページが実行されている場合にのみ適用されました。

ASP.NET 4では、HTTP要求のBeginRequestフェーズの前に有効になっているため、既定では、要求の検証はすべての要求に対して有効になっています。その結果、要求の検証は、.aspxページ要求だけでなく、すべてのASP.NETリソースの要求に適用されます。これには、Webサービス呼び出しやカスタムHTTPハンドラーなどの要求が含まれます。カスタムHTTPモジュールがHTTPリクエストの内容を読み取っている場合も、リクエストの検証がアクティブになります。

その結果、以前はエラーをトリガーしなかったリクエストに対して、リクエスト検証エラーが発生する可能性があります。ASP.NET 2.0要求検証機能の動作に戻すには、Web.configファイルに次の設定を追加します。

<httpRuntime requestValidationMode="2.0" />

ただし、リクエスト検証エラーを分析して、既存のハンドラー、モジュール、またはその他のカスタムコードが、XSS攻撃ベクトルである可能性のある安全でない可能性のあるHTTP入力にアクセスするかどうかを判断することをお勧めします。

于 2011-06-01T19:35:22.123 に答える