HttpRequestValidationException Classe

Définition

Exception levée lorsqu’une chaîne d’entrée potentiellement malveillante est reçue du client dans le cadre des 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 contient une zone de texte qui accepte l’entrée utilisateur, qui est une menace de sécurité potentielle. Par défaut, ASP.NET pages web valident que l’entrée utilisateur n’inclut pas de script ou d’éléments HTML. Pour plus d’informations, consultez Vue d’ensemble des exploits 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

La contrainte et la validation des entrées utilisateur sont essentielles dans une application web pour empêcher les attaques par pirate qui s’appuient sur des chaînes d’entrée malveillantes. Les attaques de script intersites sont un exemple de tels piratages. D’autres types de données malveillantes ou non souhaitées peuvent être transmis dans une demande via différentes formes d’entrée. En limitant les types de données passés à un niveau bas dans une application, vous pouvez empêcher 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 l’entrée du client potentiellement malveillante et lève cette exception pour abandonner le traitement de la demande. Une demande d’abandon peut indiquer une tentative de compromission de la sécurité de votre application, telle qu’une attaque par script intersites. Il est fortement recommandé que votre application vérifie explicitement toutes les entrées concernant les abandons de demande. Toutefois, vous pouvez désactiver la validation de la demande en définissant l’attribut validateRequest dans la @ Page directive falsesur , comme illustré dans l’exemple suivant :

<%@ Page validateRequest="false" %>

Pour désactiver la validation de la demande 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 falsesur , 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.

Note

Il est fortement 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 de requête ne peut pas intercepter toutes les attaques, en particulier celles conçues spécifiquement pour votre logique d’application.

Constructeurs

Nom Description
HttpRequestValidationException()

Crée une instance de la HttpRequestValidationException classe.

HttpRequestValidationException(String, Exception)

Initialise une nouvelle instance de la HttpRequestValidationException classe avec un message d’erreur spécifié et une référence à l’exception interne qui est la cause de l’exception.

HttpRequestValidationException(String)

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

Propriétés

Nom Description
Data

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

(Hérité de Exception)
ErrorCode

Obtient l’erreur HRESULT .

(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 affecté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 actuelle.

(Hérité de Exception)
Source

Obtient ou définit le nom de l’application ou de l’objet qui provoque l’erreur.

(Hérité de Exception)
StackTrace

Obtient une représentation sous forme de chaîne des images immédiates 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

Nom Description
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 la cause racine d’une ou plusieurs exceptions ultérieures.

(Hérité de Exception)
GetHashCode()

Sert 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 la réponse HTTP pour revenir au client.

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

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

(Hérité de HttpException)
GetType()

Obtient le type d’exécution de l’instance actuelle.

(Hérité de Exception)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

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

(Hérité de ExternalException)

Événements

Nom Description
SerializeObjectState

Se produit lorsqu’une exception est sérialisée pour créer un objet d’état d’exception qui contient des données sérialisées sur l’exception.

(Hérité de Exception)

S’applique à