危険性が高い入力文字列を使用するハッカーの攻撃を防ぐには、Web アプリケーションでユーザー入力を制約し、検証することが重要です。クロスサイト スクリプト攻撃は、そのようなハッキングの一例です。さまざまな入力形式を使用して、危険性が高いその他の不要なデータが渡される可能性もあります。同じコードを使用するプログラマが適切な検証方法を実行しない場合でも、アプリケーションの低レベルで渡されるデータの種類を制限することによって、予期しないイベントを防ぐことができます。
要求の検証では、危険性が高いクライアント入力を検出し、この例外をスローして、要求の処理が中止されます。要求の中止は、クロスサイト スクリプト攻撃などのアプリケーションのセキュリティが損なわれる試みがあったことを示している可能性があります。アプリケーションで、要求の中止に関連するすべての入力を明示的にチェックすることを強くお勧めします。ただし、次の例に示すように、@ Page ディレクティブの validateRequest 属性を false に設定して、要求の検証を無効にできます。
<%@ Page validateRequest="false" %>
アプリケーションで要求の検証を無効にするには、そのアプリケーション用の Web.config ファイルを修正または作成し、次の例に示すように、pages セクションの validateRequest 属性を false に設定する必要があります。
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration> サーバー上のすべてのアプリケーションで要求の検証を無効にするには、上記のように Machine.config ファイルを修正します。
メモ : |
|---|
ASP.NET によって実行される要求の検証に加えて、アプリケーションですべての入力を明示的にチェックすることを強くお勧めします。要求の検証機能では、すべての攻撃を検出できません。特に、アプリケーション論理を標的として行われる攻撃などは検出できません。 |