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 項目。 如需詳細資訊,請參閱 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 應用程式中不可或缺的,以防止依賴惡意輸入字串的駭客攻擊。 跨網站腳本攻擊是這類駭客的其中一個範例。 其他類型的惡意或不想要的資料可以透過各種形式的輸入傳入要求。 藉由限制在應用程式中在低層級傳遞的資料種類,即使使用程式碼的程式設計人員未就位適當的驗證技術,您仍可避免不想要的事件。

要求驗證會偵測潛在的惡意用戶端輸入,並擲回此例外狀況以中止處理要求。 要求中止可能表示嘗試入侵應用程式的安全性,例如跨網站腳本攻擊。 強烈建議您的應用程式明確檢查有關要求中止的所有輸入。 不過,您可以將 指示詞中的 @ Page 屬性設定 validateRequestfalse ,以停用要求驗證,如下列範例所示:

<%@ Page validateRequest="false" %>

若要停用應用程式的要求驗證,您必須修改或建立應用程式的Web.config檔案,並將 區段的 pages 屬性設定 validateRequestfalse ,如下列範例所示:

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

在衍生類別中覆寫時,傳回一或多個後續的例外狀況的根本原因 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)

適用於