HttpRequestValidationException クラス

定義

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

public ref class HttpRequestValidationException sealed : System::Web::HttpException
public sealed class HttpRequestValidationException : System.Web.HttpException
[System.Serializable]
public sealed class HttpRequestValidationException : System.Web.HttpException
type HttpRequestValidationException = class
    inherit HttpException
[<System.Serializable>]
type HttpRequestValidationException = class
    inherit HttpException
Public NotInheritable Class HttpRequestValidationException
Inherits HttpException
継承
属性

次のコード例では、.HttpRequestValidationException

重要

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

<%@ 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>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Label1.Text = txt1.Text
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head 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>

注釈

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

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

<%@ Page validateRequest="false" %>

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

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

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

注意

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

コンストラクター

HttpRequestValidationException()

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

HttpRequestValidationException(String)

指定したエラー メッセージを使用して、新しい HttpRequestValidationException 例外を作成します。

HttpRequestValidationException(String, Exception)

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

プロパティ

Data

例外に関する追加のユーザー定義情報を提供する、キーと値のペアのコレクションを取得します。

(継承元 Exception)
ErrorCode

エラーの HRESULT を取得します。

(継承元 ExternalException)
HelpLink

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

(継承元 Exception)
HResult

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

(継承元 Exception)
InnerException

現在の例外の原因となる Exception インスタンスを取得します。

(継承元 Exception)
Message

現在の例外を説明するメッセージを取得します。

(継承元 Exception)
Source

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。

(継承元 Exception)
StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。

(継承元 Exception)
TargetSite

現在の例外がスローされたメソッドを取得します。

(継承元 Exception)
WebEventCode

HTTP 例外に関連付けられているイベント コードを取得します。

(継承元 HttpException)

メソッド

Equals(Object)

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

(継承元 Object)
GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の根本原因である Exception を返します。

(継承元 Exception)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetHtmlErrorMessage()

クライアントに返す HTML エラー メッセージを取得します。

(継承元 HttpException)
GetHttpCode()

クライアントに返す HTTP 応答ステータス コードを取得します。

(継承元 HttpException)
GetObjectData(SerializationInfo, StreamingContext)

例外に関する情報を取得して、SerializationInfo オブジェクトに追加します。

(継承元 HttpException)
GetType()

現在のインスタンスのランタイム型を取得します。

(継承元 Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

エラーの HRESULT が格納された文字列を返します。

(継承元 ExternalException)

events

SerializeObjectState
互換性のために残されています。

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。

(継承元 Exception)

適用対象