HttpRequestValidationException Classe

Définition

L'exception levée lors de la réception d'une chaîne d'entrées potentiellement nuisible est envoyée par le client en tant que données de requête. Cette classe ne peut pas être héritée.

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
Héritage
Attributs

Exemples

L’exemple de code suivant montre comment rechercher des entrées utilisateur malveillantes à l’aide d’un HttpRequestValidationException.

Important

Cet exemple comprend une zone de texte qui accepte une entrée d'utilisateur, ce qui constitue une menace potentielle pour la sécurité. Par défaut, les pages web ASP.NET vérifient que l’entrée d’utilisateur n’inclut pas de script ou d’éléments HTML. Pour plus d’informations, consultez Vue d’ensemble des attaques de script.

<%@ 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>

Remarques

Il est essentiel de limiter et de valider les entrées utilisateur dans une application web pour empêcher les attaques de pirates informatiques qui s’appuient sur des chaînes d’entrée malveillantes. Les attaques par script intersite en sont un exemple. D’autres types de données malveillantes ou indésirables peuvent être transmis dans une requête par le biais de différentes formes d’entrée. En limitant les types de données transmises à un faible niveau dans une application, vous pouvez éviter les événements indésirables, même lorsque les programmeurs qui utilisent votre code ne mettent pas en place les techniques de validation appropriées.

La validation de la demande détecte les entrées de client potentiellement malveillantes et lève cette exception pour abandonner le traitement de la demande. Une demande d’abandon peut indiquer une tentative de compromettre la sécurité de votre application, par exemple une attaque de script intersite. Il est vivement recommandé que votre application vérifie explicitement toutes les entrées concernant l’abandon des demandes. Toutefois, vous pouvez désactiver la validation des demandes en définissant l’attribut validateRequest dans la @ Page directive sur false, comme illustré dans l’exemple suivant :

<%@ Page validateRequest="false" %>

Pour désactiver la validation des demandes pour votre application, vous devez modifier ou créer un fichier Web.config pour votre application et définir l’attribut validateRequest de la pages section sur false, comme illustré dans l’exemple suivant :

<configuration>
  <system.web>
    <pages validateRequest="false" />
  </system.web>
</configuration>

Pour désactiver la validation des demandes pour toutes les applications sur votre serveur, vous pouvez apporter cette modification au fichier Machine.config.

Notes

Il est vivement recommandé que votre application vérifie explicitement toutes les entrées qu’elle utilise en plus de la validation de la demande effectuée par ASP.NET. La fonctionnalité de validation des requêtes ne peut pas intercepter toutes les attaques, en particulier celles conçues spécifiquement contre la logique de votre application.

Constructeurs

HttpRequestValidationException()

Crée une instance de la classe HttpRequestValidationException.

HttpRequestValidationException(String)

Crée une exception HttpRequestValidationException avec le message d'erreur spécifié.

HttpRequestValidationException(String, Exception)

Initialise une nouvelle instance de la classe HttpRequestValidationException avec un message d'erreur spécifié et une référence à l'exception interne ayant provoqué l'exception.

Propriétés

Data

Obtient une collection de paires clé/valeur qui fournissent des informations définies par l'utilisateur supplémentaires sur l'exception.

(Hérité de Exception)
ErrorCode

Obtient le HRESULT de l’erreur.

(Hérité de ExternalException)
HelpLink

Obtient ou définit un lien vers le fichier d'aide associé à cette exception.

(Hérité de Exception)
HResult

Obtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique.

(Hérité de Exception)
InnerException

Obtient l'instance Exception qui a provoqué l'exception actuelle.

(Hérité de Exception)
Message

Obtient un message qui décrit l'exception active.

(Hérité de Exception)
Source

Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur.

(Hérité de Exception)
StackTrace

Obtient une représentation sous forme de chaîne des frames immédiats sur la pile des appels.

(Hérité de Exception)
TargetSite

Obtient la méthode qui lève l'exception actuelle.

(Hérité de Exception)
WebEventCode

Obtient les codes d'événement associés à l'exception HTTP.

(Hérité de HttpException)

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetBaseException()

En cas de substitution dans une classe dérivée, retourne la Exception qui est à l'origine d'une ou de plusieurs exceptions ultérieures.

(Hérité de Exception)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetHtmlErrorMessage()

Obtient le message d'erreur HTML à retourner au client.

(Hérité de HttpException)
GetHttpCode()

Obtient le code d'état de réponse HTTP à retourner au client.

(Hérité de HttpException)
GetObjectData(SerializationInfo, StreamingContext)

Obtient des informations sur l'exception et les ajoute à l'objet SerializationInfo.

(Hérité de HttpException)
GetType()

Obtient le type au moment de l'exécution de l'instance actuelle.

(Hérité de Exception)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui contient le HRESULT de l'erreur.

(Hérité de ExternalException)

Événements

SerializeObjectState
Obsolète.

Se produit quand une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées concernant l'exception.

(Hérité de Exception)

S’applique à