HttpRequestValidationException 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當從用戶端收到的要求資料中可能有包含惡意的輸入字串時,會擲回的例外狀況。 此類別無法獲得繼承。
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
屬性設定validateRequest
為 false
,以停用要求驗證,如下列範例所示:
<%@ 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 |
取得錯誤的 |
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) |