この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

HttpRequestValidationException クラス

 

公開日: 2016年11月

悪意のある入力文字列が、要求データの一部として、クライアントから受信した場合にスローされる例外。 このクラスは継承できません。

名前空間:   System.Web
アセンブリ:  System.Web (System.Web.dll 内)

System.Object
  System.Exception
    System.SystemException
      System.Runtime.InteropServices.ExternalException
        System.Web.HttpException
          System.Web.HttpRequestValidationException

[SerializableAttribute]
public sealed class HttpRequestValidationException : HttpException

名前説明
System_CAPS_pubmethodHttpRequestValidationException()

HttpRequestValidationException クラスの新しいインスタンスを作成します。

System_CAPS_pubmethodHttpRequestValidationException(String)

新たに作成HttpRequestValidationException指定したエラー メッセージで例外。

System_CAPS_pubmethodHttpRequestValidationException(String, Exception)

指定したエラー メッセージと、例外の原因である内部例外への参照を使用して、HttpRequestValidationException クラスの新しいインスタンスを初期化します。

名前説明
System_CAPS_pubpropertyData

例外に関する追加のユーザー定義情報を提供する、キー/値ペアのコレクションを取得します。(Exception から継承されます。)

System_CAPS_pubpropertyErrorCode

エラーの HRESULT を取得します。(ExternalException から継承されます。)

System_CAPS_pubpropertyHelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。(Exception から継承されます。)

System_CAPS_pubpropertyHResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。(Exception から継承されます。)

System_CAPS_pubpropertyInnerException

現在の例外の原因となる Exception インスタンスを取得します。(Exception から継承されます。)

System_CAPS_pubpropertyMessage

現在の例外を説明するメッセージを取得します。(Exception から継承されます。)

System_CAPS_pubpropertySource

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。(Exception から継承されます。)

System_CAPS_pubpropertyStackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。(Exception から継承されます。)

System_CAPS_pubpropertyTargetSite

現在の例外がスローされたメソッドを取得します。(Exception から継承されます。)

System_CAPS_pubpropertyWebEventCode

HTTP 例外に関連付けられているイベントのコードを取得します。(HttpException から継承されます。)

名前説明
System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_pubmethodGetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。(Exception から継承されます。)

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetHtmlErrorMessage()

クライアントに返される HTML エラー メッセージを取得します。(HttpException から継承されます。)

System_CAPS_pubmethodGetHttpCode()

クライアントに返される HTTP 応答のステータス コードを取得します。(HttpException から継承されます。)

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

例外に関する情報を取得し、追加して、 SerializationInfo オブジェクトです。(HttpException から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスのランタイム型を取得します。(Exception から継承されます。)

System_CAPS_pubmethodToString()

エラーの HRESULT を表す文字列を返します。(ExternalException から継承されます。)

制約を定義して、ユーザー入力の検証を悪意のある入力文字列に依存するハッカーの攻撃を防ぐために Web アプリケーションで不可欠です。 クロスサイト スクリプティング攻撃は、そのようなハッキングの 1 つの例です。 他の種類の悪意のある不要なデータは、さまざまな形式での入力を要求で渡すことができます。 アプリケーションで低レベルで渡されるデータの種類を制限すると、プログラマは、コードを使用している場所に適切な検証方法を配置しない場合でも、不測の事態を防ぐことができます。

要求の検証は、悪意のあるクライアントの入力を検出し、要求の処理を中止するには、この例外をスローします。 要求の中止は、クロスサイト スクリプティング攻撃などのアプリケーションのセキュリティを侵害する試行を示すことができます。 アプリケーションが明示的に要求の中止に関するすべての入力をチェックすることを強くお勧めします。 ただし、要求の検証を無効に設定してできます、 validateRequest ディレクティブ内の属性 false, 、次の例のように。

<%@ Page validateRequest="false" %>

を、アプリケーションの要求の検証を無効にするには、変更またはアプリケーションとセットの Web.config ファイルを作成する必要があります、 validateRequest の属性、 pages セクションに false, 、次の例のように、。

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

サーバー上のすべてのアプリケーションで要求の検証を無効にするには、Machine.config ファイルには、この変更を行うことができます。

System_CAPS_noteメモ

アプリケーションが ASP.NET によって実行される要求の検証だけでなくすべての入力を明示的にチェックすることを強くお勧めします。 要求の検証機能は、すべてをキャッチできません攻撃する場合に、特に、アプリケーション ロジックに対して作成されたものです。

次のコード例では、悪意のあるユーザー入力を使用してチェック、 HttpRequestValidationExceptionです。

System_CAPS_security セキュリティ メモ

この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。 詳細については、「Script Exploits Overview」を参照してください。

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = txt1.Text;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox id="txt1" Runat="server" />
        <asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
        <br /><br />You entered: <asp:Label ID="Label1" Runat="server" Text="Label" />.
    </div>
    </form>
</body>
</html>

.NET Framework
1.1 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: