クライアントから潜在的な危険を検出するRequest.Form値設定ValidateRequest="false"は関係ありません

1285 ワード

Version Information: Microsoft .NET Framework Version:4.0.21006; ASP.NET Version:4.0.21006.1
Visual Studio 2010 Beta 2がインストールされた後、ページ入力ボックスのデフォルトで「<」または「>」が入力された場合.アクセスポリシーに従って、クロスステーションスクリプト攻撃(cross-site scripting attack)などのセキュリティ上の問題が発生します.この問題のより正確な説明は、インストールしているときです.NET Framework 4.0以上のバージョンでは、アプリケーションがNET Framework 4.0はフレームワークバージョンで、あなたの任意のサーバ要求は、ASPだけでなく、サーバ要求検証(ValidationRequest)されます.NETは、Web Servicesなどの各種HTTPリクエストも含まれており、aspxページだけでなく、HTTP Handler、HTTP Moduleなどにも対応している.この検証(Valify)のプロセスは、BeginRequestイベントの前に発生するからである.
以上の原理に基づいて、ASP.NET以前のバージョンでは、リクエスト検証もデフォルトで開始されていましたが、ページレベル(aspx)で発生し、リクエスト実行時にのみ有効になります.したがって、古いバージョンでは、以下のように構成する必要があります.
ページレベル(aspx)でValidateRequest="false"を設定するか、グローバルレベル(Web.config)で設定します.
<configuration>

<system.web>

<pages validateRequest="false">


ただし、以上の設定はASPのみである.NET4.0以上有効です.ASP.NET4.0バージョンでは、より多くの行の構成が必要です.
グローバル・レベル(Web.config)での設定
<configuration>

<system.web>

<httpRuntime requestValidationMode="2.0" />


この点は実際にエラーが発生したページで説明されています.実際の使用過程では、それだけでなく、requestValidationModeは4.0未満に設定すればよいことを発見しました.例えば、1.0、2.0、3.0、3.9はすべて可能で、エラープロンプトでは2.0を使用することを示しています.目的はASPを使用することです.NET 2.0のデフォルト方式で動作します.