asp.net の「潜在的に危険な Request.Form 値がクライアントから検出されました」エラーを解決する

伊谢尔伦
リリース: 2016-11-24 16:15:11
オリジナル
1128 人が閲覧しました

フォームを送信すると、asp.net は「潜在的に危険な Request.Form 値がクライアントから検出されました (...)」というプロンプトを表示します。 asp.net の要求検証機能は、XSS 攻撃に対して一定レベルの保護を提供します。asp.net の要求検証はデフォルトで有効になっています。これにより、.net のさまざまなバージョンに対応したソリューションが提供されます。

asp.net 2.0 の通常の解決策

解決策 1:

次のように、.aspx ファイルのページ項目に ValidateRequest="false" を追加します:

<%@ Page ValidateRequest="false" Language=" C#" AutoEventWireup="true" CodeFile="test2.aspx.cs" Inherits="test2" %>

オプション 2:

web.config 構成ファイルを変更します

 <system.web> 
      <pages validateRequest="false" >   
      </pages>   
  </system.web>
ログイン後にコピー

概要: validateRequest わかっているこの文は、これは、ASP.NET が bold などのタグを含む値を送信するときにエラーを報告しないことを意味します。このオプションは test.aspx ページのみを変更し、オプション 2 を使用すると、ソリューション全体が ValidateRequest="false" になるため、ここではオプション 1 を使用することをお勧めします。

Asp.net 4.0ソリューション

4.0と2.0の方法は同じですが、.Net Framework 4.0からasp.netはリクエストパラメータのセキュリティを強制的に検出し始め、変更することで2.0を復元できることに注意してくださいモデルの Web.config バージョン。

方法は以下の通りです

Web.configを変更し、requestValidationMode="2.0"属性値を追加します

 <system.web>
      <httpRuntime requestValidationMode="2.0" />
      <pages validateRequest="false"></pages>
  </system.web>
ログイン後にコピー

4.0には追加のrequestValidationModeがありますが、これは何を意味しますか?

requestValidationModeには2つの値があります:

2.0はWebページのリクエスト検証のみを有効にします。有効か無効かは validateRequest によって異なります。

4.0 デフォルト。あらゆる HTTP リクエストでリクエストの検証が可能になります。これは Web ページだけでなく Cookie なども意味します。 validateRequest 値に関係なく、有効になりました。

requestValidationMode="4.0" が強制的に有効になっているため、.NET Framework 4.0 では validateRequest を設定するだけではリクエスト検証をオフにできないことがわかります。また、requestValidationMode を 2.0 に設定する必要があります。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!