HttpRequestValidationException Klasse

Definition

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 HRESULT Fehler ab.

(Geerbt von ExternalException)
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)

Gilt für: