2010-08-23 2 views
6

Existe-t-il un moyen de désactiver la validation des demandes pour certaines zones de texte au lieu de la page entière? J'utilise Server.HtmlEncode/Decode parce que les utilisateurs utilisent légitimement < et> caractères mais je ne veux pas utiliser ValidateRequest="false" sur toute la page parce que quelqu'un pourrait ajouter une zone de texte plus tard et oublier d'échapper l'entrée dans quel cas je voudrais validation à se produire de sorte que l'erreur serait découverte plutôt que d'être vulnérable à l'injection html.asp.net ValidateRequest = false par zone de texte au lieu de par page?

Il semble qu'il doit y avoir une solution simple, mais je n'ai pas de chance de le trouver.

(Webforms pas MVC)

+0

Eh bien, c'est douloureux -> .NET 4.5 n'a pas été publié lorsque j'ai posté ma réponse. – Tommy

+0

@Tommy Je sais, et ce n'était pas quand j'ai posé la question, mais c'est la réponse la plus à jour et serait plus utile pour les futurs utilisateurs de lire ceci. Votre réponse est toujours upvoted cependant. – Davy8

+0

Haha - Je sais :) Rien de personnel, mais j'ai dû vérifier. PS - on dirait que j'étais proche de mon commentaire .NET 5.0 ci-dessous. – Tommy

Répondre

3

Non, la validation de la demande est pour toute la demande et ne peut se faire sur un élément par élément base. La validation des requêtes est activée par défaut par ASP.NET et a pour but d'aider ceux qui ne savent pas à nettoyer les entrées HTML des attaques par injection de script. Posté quelques liens ci-dessous pour en savoir plus:

MSDN

Stackoverflow

+0

Je trouve incroyable qu'il n'y ait aucun moyen de le faire par contrôle. Même quelqu'un qui sait ce qu'ils font peut parfois oublier et ce serait bien d'avoir une solution de rechange. Cependant +1 de toute façon parce que je n'ai pas pu trouver quoi que ce soit à l'opposé. Si rien ne se présente demain j'accepterai. – Davy8

+0

Peut-être quelque chose pour .NET 5.0 :) – Tommy

+0

Je suis d'accord qu'il est ridicule que ce n'est pas pris en charge, mais je crois comprendre que @Tommy est correct, ce n'est vraiment pas possible dans ASP.NET actuel. – Stuart

Questions connexes