HttpRequestValidationException Class

定義

要求データの一部としてクライアントから受信した入力文字列に危険性が高い文字列が含まれている場合にスローされる例外。 The exception that is thrown when a potentially malicious input string is received from the client as part of the request data. このクラスは継承できません。 This class cannot be inherited.

public sealed class HttpRequestValidationException : System.Web.HttpException
継承

次のコード例に示しますを使用して悪意のあるユーザーの入力を確認する方法、HttpRequestValidationExceptionします。The following code example demonstrates how to check for malicious user input by using an HttpRequestValidationException.

重要

この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。This example has a text box that accepts user input, which is a potential security threat. 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。By default, ASP.NET Web pages validate that user input does not include script or HTML elements. 詳細については、「スクリプトによる攻略の概要」を参照してください。For more information, see 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>
<%@ 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 アプリケーションで不可欠です。Constraining and validating user input is essential in a Web application to prevent hacker attacks that rely on malicious input strings. クロスサイト スクリプティング攻撃は、このようなハッキングの 1 つの例です。Cross-site scripting attacks are one example of such hacks. 他の種類の悪意のあるまたは望ましくないデータは、さまざまな形式での入力を要求で渡すことが。Other types of malicious or undesired data can be passed in a request through various forms of input. アプリケーションでの低レベルで渡されるデータの種類を制限することで、コードを使用するプログラマは場所に適切な検証方法を配置しない場合でも、望ましくないイベントを防ぐことができます。By limiting the kinds of data that is passed at a low level in an application, you can prevent undesirable events, even when programmers who are using your code do not put the proper validation techniques in place.

要求の検証は、可能性のある悪意のあるクライアントの入力を検出し、要求の処理を中止するには、この例外をスローします。Request validation detects potentially malicious client input and throws this exception to abort processing of the request. 要求の中止は、クロスサイト スクリプティング攻撃などのアプリケーションのセキュリティを侵害する試行を示すことができます。A request abort can indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. アプリケーションが要求の中止に関するすべての入力を明示的にチェックすることを強くお勧めします。It is strongly recommended that your application explicitly check all input regarding request aborts. ただし、要求の検証を無効に設定してできます、validateRequestするディレクティブ属性false次の例のように。However, you can disable request validation by setting the validateRequest attribute in the directive to false, as shown in the following example:

<%@ Page validateRequest="false" %>

を、アプリケーションの要求の検証を無効にするには、変更またはセット、アプリケーションの Web.config ファイルを作成する必要があります、validateRequestの属性、pagesセクションfalse次の例のように。To disable request validation for your application, you must modify or create a Web.config file for your application and set the validateRequest attribute of the pages section to false, as shown in the following example:

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

サーバー上のすべてのアプリケーションの要求の検証を無効にするには、Machine.config ファイルには、この変更を行うことができます。To disable request validation for all applications on your server, you can make this modification to the Machine.config file.

注意

アプリケーションが ASP.NET によって実行される要求の検証だけでなくすべての入力を明示的にチェックすることを強くお勧めします。It is strongly recommended that your application explicitly check all inputs it uses in addition to the request validation performed by ASP.NET. 要求の検証機能は、すべてをキャッチできません攻撃、具体的には、アプリケーション ロジックに対して作成されたものでは特にです。The request validation feature cannot catch all attacks, especially those crafted specifically against your application logic.

コンストラクター

HttpRequestValidationException()

HttpRequestValidationException クラスの新しいインスタンスを作成します。 Creates a new instance of the HttpRequestValidationException class.

HttpRequestValidationException(String)

指定したエラー メッセージを使用して、新しい HttpRequestValidationException 例外を作成します。 Creates a new HttpRequestValidationException exception with the specified error message.

HttpRequestValidationException(String, Exception)

指定したエラー メッセージと、例外の原因である内部例外への参照を使用して、HttpRequestValidationException クラスの新しいインスタンスを初期化します。 Initializes a new instance of the HttpRequestValidationException class with a specified error message and a reference to the inner exception that is the cause of the exception.

プロパティ

Data

例外に関する追加のユーザー定義情報を提供する、キー/値ペアのコレクションを取得します。 Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
ErrorCode

エラーの HRESULT を取得します。 Gets the HRESULT of the error.

(Inherited from ExternalException)
HelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。 Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。 Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException

現在の例外の原因となる Exception インスタンスを取得します。 Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message

現在の例外を説明するメッセージを取得します。 Gets a message that describes the current exception.

(Inherited from Exception)
Source

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。 Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。 Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite

現在の例外がスローされたメソッドを取得します。 Gets the method that throws the current exception.

(Inherited from Exception)
WebEventCode

HTTP 例外に関連付けられているイベント コードを取得します。 Gets the event codes that are associated with the HTTP exception.

(Inherited from HttpException)

方法

Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。 Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。 When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode()

既定のハッシュ関数として機能します。 Serves as the default hash function.

(Inherited from Object)
GetHtmlErrorMessage()

クライアントに返す HTML エラー メッセージを取得します。 Gets the HTML error message to return to the client.

(Inherited from HttpException)
GetHttpCode()

クライアントに返す HTTP 応答ステータス コードを取得します。 Gets the HTTP response status code to return to the client.

(Inherited from HttpException)
GetObjectData(SerializationInfo, StreamingContext)

例外に関する情報を取得して、SerializationInfo オブジェクトに追加します。 Gets information about the exception and adds it to the SerializationInfo object.

(Inherited from HttpException)
GetType()

現在のインスタンスのランタイム型を取得します。 Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。 Creates a shallow copy of the current Object.

(Inherited from Object)
ToString()

エラーの HRESULT が格納された文字列を返します。 Returns a string that contains the HRESULT of the error.

(Inherited from ExternalException)

イベント

SerializeObjectState

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。 Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

適用対象