Freigeben über


HttpRequestValidationException Klasse

Definition

Die Ausnahme, die ausgelöst wird, wenn als Teil der Anforderungsdaten eine möglicherweise böswillige Eingabezeichenfolge vom Client 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 Mithilfe von auf schädliche Benutzereingaben HttpRequestValidationExceptionüberprüft wird.

Wichtig

Dieses Beispiel umfasst ein Textfeld, das Benutzereingaben akzeptiert, die ein potenzielles Sicherheitsrisiko darstellen. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

<%@ 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ädlichen Eingabezeichenfolgen basieren. Siteübergreifende Skriptangriffe sind ein Beispiel für solche Hacks. Andere Arten böswilliger oder unerwünschter Daten können in einer Anforderung über verschiedene Eingabeformen übergeben werden. Indem Sie die Arten von Daten einschränken, die in einer Anwendung auf niedriger Ebene ü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. Ein Anforderungsabbruch kann auf einen Versuch hinweisen, die Sicherheit Ihrer Anwendung zu gefährden, z. B. einen websiteübergreifenden Skriptangriff. Es wird dringend empfohlen, dass Ihre Anwendung alle Eingaben in Bezug auf Anforderungsabbrüche explizit ü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.

Hinweis

Es wird dringend empfohlen, dass Ihre Anwendung alle Eingaben explizit überprüft, die sie zusätzlich zur Anforderungsüberprüfung durch ASP.NET verwendet. Das Anforderungsüberprüfungsfeature kann nicht alle Angriffe abfangen, insbesondere nicht solche, die speziell für Ihre Anwendungslogik erstellt wurden.

Konstruktoren

HttpRequestValidationException()

Erstellt eine neue Instanz der HttpRequestValidationException-Klasse.

HttpRequestValidationException(String)

Erstellt eine neue HttpRequestValidationException-Ausnahme mit der angegebenen Fehlermeldung.

HttpRequestValidationException(String, Exception)

Initialisiert eine neue Instanz der HttpRequestValidationException-Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die interne Ausnahme, die diese Ausnahme ausgelöst hat.

Eigenschaften

Data

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen.

(Geerbt von Exception)
ErrorCode

Ruft das HRESULT des Fehlers ab.

(Geerbt von ExternalException)
HelpLink

Ruft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest.

(Geerbt von Exception)
HResult

Ruft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist.

(Geerbt von Exception)
InnerException

Ruft die Exception-Instanz ab, die die aktuelle Ausnahme verursacht hat.

(Geerbt von Exception)
Message

Ruft eine Meldung ab, mit der die aktuelle Ausnahme beschrieben wird.

(Geerbt von Exception)
Source

Gibt den Namen der Anwendung oder des Objekts zurück, die bzw. das den Fehler verursacht hat, oder legt diesen fest.

(Geerbt von Exception)
StackTrace

Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste 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

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetBaseException()

Gibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die Grundursache für eine oder mehrere nachfolgende Ausnahmen ist.

(Geerbt von Exception)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetHtmlErrorMessage()

Ruft die HTML-Fehlermeldung ab, die an den Client zurückgegeben wird.

(Geerbt von HttpException)
GetHttpCode()

Ruft den HTTP-Antwortstatuscode ab, der an den Client zurückgegeben wird.

(Geerbt von HttpException)
GetObjectData(SerializationInfo, StreamingContext)

Ruft Informationen zu der 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 des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das HRESULT des Fehlers enthält.

(Geerbt von ExternalException)

Ereignisse

SerializeObjectState
Veraltet.

Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt mit serialisierten Daten über die Ausnahme zu erstellen.

(Geerbt von Exception)

Gilt für: