次の方法で共有


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 つの例です。 他の種類の悪意のあるデータや望ましくないデータは、さまざまな形式の入力を介して要求で渡すことができます。 アプリケーションで低レベルで渡されるデータの種類を制限することで、コードを使用しているプログラマが適切な検証手法を適用しない場合でも、望ましくないイベントを防ぐことができます。

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

<%@ Page validateRequest="false" %>

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

<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)

イベント

SerializeObjectState
古い.

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

(継承元 Exception)

適用対象