HttpRequestValidationException Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Undantaget som utlöses när en potentiellt skadlig indatasträng tas emot från klienten som en del av begärandedata. Det går inte att ärva den här klassen.
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
- Arv
- Attribut
Exempel
Följande kodexempel visar hur du söker efter skadliga användarindata med hjälp av en HttpRequestValidationException.
Important
Det här exemplet har en textruta som accepterar användarindata, vilket är ett potentiellt säkerhetshot. Som standard kontrollerar ASP.NET webbsidor att användarindata inte innehåller skript- eller HTML-element. Mer information finns i Översikt över skriptexploateringar.
<%@ 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>
Kommentarer
Det är viktigt att begränsa och verifiera användarindata i ett webbprogram för att förhindra hackerattacker som förlitar sig på skadliga indatasträngar. Skriptattacker mellan webbplatser är ett exempel på sådana hack. Andra typer av skadliga eller oönskade data kan skickas i en begäran via olika former av indata. Genom att begränsa de typer av data som skickas på en låg nivå i ett program kan du förhindra oönskade händelser, även om programmerare som använder koden inte använder rätt valideringstekniker.
Verifiering av begäran identifierar potentiellt skadliga klientindata och utlöser det här undantaget för att avbryta bearbetningen av begäran. En begäran avbryts kan tyda på ett försök att äventyra säkerheten för ditt program, till exempel ett skriptangrepp mellan webbplatser. Vi rekommenderar starkt att programmet uttryckligen kontrollerar alla indata om begärande aborter. Du kan dock inaktivera validering av begäranden genom att ange validateRequest attributet i @ Page direktivet till false, som du ser i följande exempel:
<%@ Page validateRequest="false" %>
Om du vill inaktivera validering av validateRequest begäran för ditt program måste du ändra eller skapa en Web.config fil för ditt program och ange pages attributet för avsnittet till false, enligt följande exempel:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
Om du vill inaktivera validering av begäranden för alla program på servern kan du göra den här ändringen i filen Machine.config.
Note
Vi rekommenderar starkt att programmet uttryckligen kontrollerar alla indata som används utöver den verifiering av begäran som utförs av ASP.NET. Valideringsfunktionen för begäran kan inte fånga alla attacker, särskilt de som utformats specifikt mot din programlogik.
Konstruktorer
| Name | Description |
|---|---|
| HttpRequestValidationException() |
Skapar en ny instans av HttpRequestValidationException klassen. |
| HttpRequestValidationException(String, Exception) |
Initierar en ny instans av HttpRequestValidationException klassen med ett angivet felmeddelande och en referens till det inre undantaget som är orsaken till undantaget. |
| HttpRequestValidationException(String) |
Skapar ett nytt HttpRequestValidationException undantag med det angivna felmeddelandet. |
Egenskaper
| Name | Description |
|---|---|
| Data |
Hämtar en samling nyckel/värde-par som ger ytterligare användardefinierad information om undantaget. (Ärvd från Exception) |
| ErrorCode |
|
| HelpLink |
Hämtar eller anger en länk till hjälpfilen som är associerad med det här undantaget. (Ärvd från Exception) |
| HResult |
Hämtar eller anger HRESULT, ett kodat numeriskt värde som har tilldelats ett specifikt undantag. (Ärvd från Exception) |
| InnerException |
Hämtar den Exception instans som orsakade det aktuella undantaget. (Ärvd från Exception) |
| Message |
Hämtar ett meddelande som beskriver det aktuella undantaget. (Ärvd från Exception) |
| Source |
Hämtar eller anger namnet på programmet eller objektet som orsakar felet. (Ärvd från Exception) |
| StackTrace |
Hämtar en strängrepresentation av de omedelbara ramarna i anropsstacken. (Ärvd från Exception) |
| TargetSite |
Hämtar den metod som utlöser det aktuella undantaget. (Ärvd från Exception) |
| WebEventCode |
Hämtar de händelsekoder som är associerade med HTTP-undantaget. (Ärvd från HttpException) |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetBaseException() |
När den åsidosätts i en härledd klass returnerar den Exception som är rotorsaken till ett eller flera efterföljande undantag. (Ärvd från Exception) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetHtmlErrorMessage() |
Hämtar HTML-felmeddelandet för att återgå till klienten. (Ärvd från HttpException) |
| GetHttpCode() |
Hämtar http-svarsstatuskoden för att återgå till klienten. (Ärvd från HttpException) |
| GetObjectData(SerializationInfo, StreamingContext) |
Hämtar information om undantaget och lägger till det i SerializationInfo objektet. (Ärvd från HttpException) |
| GetType() |
Hämtar körningstypen för den aktuella instansen. (Ärvd från Exception) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som innehåller HRESULT för felet. (Ärvd från ExternalException) |
Händelser
| Name | Description |
|---|---|
| SerializeObjectState |
Föråldrad.
Inträffar när ett undantag serialiseras för att skapa ett undantagstillståndsobjekt som innehåller serialiserade data om undantaget. (Ärvd från Exception) |