HttpRequestValidationException Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Die Ausnahme, die ausgelöst wird, wenn eine potenziell schädliche Eingabezeichenfolge vom Client als Teil der Anforderungsdaten empfangen wird. Diese Klasse kann nicht vererbt werden.
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
- Vererbung
- Attribute
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie sie mithilfe einer HttpRequestValidationException.
Important
In diesem Beispiel handelt es sich um ein Textfeld, das Benutzereingaben akzeptiert, bei denen es sich um eine potenzielle Sicherheitsrisiken handelt. Standardmäßig überprüfen ASP.NET Webseiten, dass die Benutzereingabe keine Skript- oder HTML-Elemente enthält. Weitere Informationen finden Sie unter 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>
Hinweise
Das Einschränken und Überprüfen von Benutzereingaben ist in einer Webanwendung unerlässlich, um Hackerangriffe zu verhindern, die auf schädliche Eingabezeichenfolgen basieren. Websiteübergreifende Skriptingangriffe sind ein Beispiel für solche Hacks. Andere Arten bösartiger oder unerwünschter Daten können in einer Anforderung über verschiedene Eingabeformen übergeben werden. Indem Sie die Arten von Daten einschränken, die auf einer niedrigen Ebene in einer Anwendung übergeben werden, können Sie unerwünschte Ereignisse verhindern, auch wenn Programmierer, die Ihren Code verwenden, nicht die richtigen Validierungstechniken anwenden.
Die Anforderungsüberprüfung erkennt potenziell schädliche Clienteingaben und löst diese Ausnahme aus, um die Verarbeitung der Anforderung abzubrechen. Eine Anforderungsabbruch kann auf einen Versuch hinweisen, die Sicherheit Ihrer Anwendung zu kompromittieren, z. B. einen websiteübergreifenden Skriptingangriff. Es wird dringend empfohlen, dass Ihre Anwendung explizit alle Eingaben in Bezug auf Abbruch der Anforderung überprüft. Sie können die Anforderungsüberprüfung jedoch deaktivieren, indem Sie das validateRequest Attribut in der @ Page Direktive auf falsefestlegen, wie im folgenden Beispiel gezeigt:
<%@ Page validateRequest="false" %>
Um die Anforderungsüberprüfung für Ihre Anwendung zu deaktivieren, müssen Sie eine Web.config Datei für Ihre Anwendung ändern oder erstellen und das validateRequest Attribut des pages Abschnitts auf falsefestlegen, wie im folgenden Beispiel gezeigt:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
Um die Anforderungsüberprüfung für alle Anwendungen auf Ihrem Server zu deaktivieren, können Sie diese Änderung an der Machine.config Datei vornehmen.
Note
Es wird dringend empfohlen, dass Ihre Anwendung zusätzlich zur von ASP.NET durchgeführten Anforderungsüberprüfung alle von der Anwendung verwendeten Eingaben explizit überprüft. Das Anforderungsüberprüfungsfeature kann nicht alle Angriffe abfangen, insbesondere nicht, die speziell für Ihre Anwendungslogik entwickelt wurden.
Konstruktoren
| Name | Beschreibung |
|---|---|
| HttpRequestValidationException() |
Erstellt eine neue Instanz der HttpRequestValidationException Klasse. |
| HttpRequestValidationException(String, Exception) |
Initialisiert eine neue Instanz der HttpRequestValidationException Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die die Ursache der Ausnahme ist. |
| HttpRequestValidationException(String) |
Erstellt eine neue HttpRequestValidationException Ausnahme mit der angegebenen Fehlermeldung. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Data |
Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen. (Geerbt von Exception) |
| ErrorCode |
Ruft den |
| HelpLink |
Dient zum Abrufen oder Festlegen eines Links zur Hilfedatei, die dieser Ausnahme zugeordnet ist. (Geerbt von Exception) |
| HResult |
Dient zum Abrufen oder Festlegen von HRESULT, einem codierten numerischen Wert, der einer bestimmten Ausnahme zugewiesen ist. (Geerbt von Exception) |
| InnerException |
Ruft die Exception Instanz ab, die die aktuelle Ausnahme verursacht hat. (Geerbt von Exception) |
| Message |
Ruft eine Nachricht ab, die die aktuelle Ausnahme beschreibt. (Geerbt von Exception) |
| Source |
Dient zum Abrufen oder Festlegen des Namens der Anwendung oder des Objekts, das den Fehler verursacht. (Geerbt von Exception) |
| StackTrace |
Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames im Aufrufstapel ab. (Geerbt von Exception) |
| TargetSite |
Ruft die Methode ab, die die aktuelle Ausnahme auslöst. (Geerbt von Exception) |
| WebEventCode |
Ruft die Ereigniscodes ab, die der HTTP-Ausnahme zugeordnet sind. (Geerbt von HttpException) |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
| GetBaseException() |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Exception Ursache einer oder mehrerer nachfolgenden Ausnahmen zurückgegeben. (Geerbt von Exception) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetHtmlErrorMessage() |
Ruft die HTML-Fehlermeldung ab, die an den Client zurückgegeben werden soll. (Geerbt von HttpException) |
| GetHttpCode() |
Ruft den HTTP-Antwortstatuscode ab, der an den Client zurückgegeben werden soll. (Geerbt von HttpException) |
| GetObjectData(SerializationInfo, StreamingContext) |
Ruft Informationen über die Ausnahme ab und fügt sie dem SerializationInfo Objekt hinzu. (Geerbt von HttpException) |
| GetType() |
Ruft den Laufzeittyp der aktuellen Instanz ab. (Geerbt von Exception) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das HRESULT des Fehlers enthält. (Geerbt von ExternalException) |
Ereignisse
| Name | Beschreibung |
|---|---|
| SerializeObjectState |
Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmestatusobjekt zu erstellen, das serialisierte Daten zu der Ausnahme enthält. (Geerbt von Exception) |