[HttpRequestValidationException (0x80004005) : Du client... La valeur potentiellement dangereuse de Request.Form est détectée dans la valeur Request.Form. ] System.Web.HttpRequest.ValidateString(String s, ChainValueName, StringCollectionName)
1. En fait, l’erreur a été clairement expliquée et la solution est donnée :
Une valeur potentiellement dangereuse de Request.Form a été détectée auprès du client (txtUEditor="<p>a</p> »).
Description : Le processus de validation de la requête a détecté des valeurs d’entrée client potentiellement dangereuses et le traitement de la requête a été interrompu. Cette valeur peut indiquer qu’il y a une tentative de compromettre la sécurité de l’application, comme une attaque cross-site scripting. Pour permettre à la page de passer outre les paramètres de validation des requêtes d’application, réglez la propriété requestValidationMode dans la section de configuration httpRuntime sur requestValidationMode="2.0 ». Exemple : <httpRuntime requestValidationMode="2.0 » />. Une fois cette valeur définie, <pages> la validation de requête peut être désactivée en définissant validateRequest="false » dans la directive Page ou dans la section configuration. Cependant, dans ce cas, il est fortement recommandé que l’application vérifie explicitement toutes les entrées. Voir http://Go.microsoft.com/fwlink/?LinkId=153133 pour plus d’informations.
Détails d’exception : System.Web.HttpRequestValidationException : Une valeur Request.Form potentiellement dangereuse a été détectée par le client (txtUEditor="<p>a"a</p>).
2. Une autre façon est de la définir dans la section Pages de web.config, par exemple :
Mais cette méthode n’est pas bonne, trop violente, car elle fera que toutes les pages du projet entier ne vérifieront plus le contenu soumis, et la sécurité sera fortement réduite.
3. Pratiques recommandées : Ajoutez un attribut :[ValidateInput(false)] à l’action, ce qui empêchera seulement la page de valider la soumission, sans affecter les autres pages.
Note : Si Request.Form["XXX"] est obtenu de cette manière, une anomalie potentiellement dangereuse sera tout de même détectée, alors assurez-vous d’entrer les données que vous souhaitez obtenir dans les paramètres du contrôleur !
|