1

設定以外に「潜在的に危険なRequest.Form値がクライアントから検出されました」というエラーを防ぐ方法はありますValidateRequest="false"か?

更新:「ページ上」の部分を削除しました。ValidateRequest="false"ページやweb.configではまったく使用したくない。

4

4 に答える 4

2

新しいASP.NET 4.5 要求検証機能を確認してください。

設定した場合

<httpRuntime requestValidationMode="4.5" ... />

web.config では、値はアクセスしたときにのみ検証されます。これは遅延検証と呼ばれます。

また、検証されていない値を取得することもできます

var s = context.Request.Unvalidated.Form["forum_post"];
于 2012-10-10T17:47:32.120 に答える
1

1入力にJavaScript検証を追加することもできます

2カスタムバリデーターを追加できます

于 2012-10-10T17:45:12.480 に答える
1

はい、web.config でグローバルに実行できます。

.net 4.0 を実行している場合は、これを web.config に追加できます。

<httpRuntime requestValidationMode="2.0"/>

または、代わりにこれを追加できます

<pages validateRequest="false" /> 
于 2012-10-10T17:49:02.443 に答える
-1

web.config ファイルを編集して、アプリケーション全体で無効にすることができます。

<configuration>
   <system.web>
      <pages validateRequest="false" />
   </system.web>
</configuration>

エラーを抑制したいだけなのか、最初からエラーが発生しないようにしたいのかを知っておくと役立ちます。これを防ぎたい場合は、フォームを送信する前に入力を (javascript またはバリデーターを使用して) サニタイズしてください。

于 2012-10-10T17:48:39.237 に答える