2010-08-23 16 views
6

Esiste un modo per disabilitare la convalida della richiesta solo per determinate caselle di testo anziché per l'intera pagina? Sto usando Server.HtmlEncode/Decode perché gli utenti usano legittimamente caratteri < e> ma non voglio usare ValidateRequest="false" sull'intera pagina perché qualcuno potrebbe aggiungere una casella di testo in un secondo momento e dimenticare di sfuggire all'input, nel qual caso vorrei la convalida deve avvenire in modo che l'errore venga scoperto piuttosto che essere vulnerabile all'iniezione HTML.asp.net ValidateRequest = false per casella di testo anziché per pagina?

Sembra che ci debba essere una soluzione semplice ma non ho alcuna fortuna a trovarlo.

(Webforms non MVC)

+0

Beh questo è doloroso -> .NET 4.5 non è stato rilasciato quando ho postato la mia risposta. – Tommy

+0

@ Tommy Lo so, né è stato quando ho fatto la domanda, tuttavia è la risposta più aggiornata e sarebbe più utile per i futuri utenti che leggono questo. La tua risposta è ancora upvoted però. – Davy8

+0

Haha - Lo so :) Niente di personale, ma dovevo venire a dare un'occhiata. PS: sembra che io fossi vicino al mio commento su .NET 5.0 qui sotto. – Tommy

risposta

3

No, richiesta di convalida è per l'intera richiesta e non può essere fatto su un elemento per elemento base. La convalida della richiesta è abilitata da ASP.NET per impostazione predefinita e serve per aiutare coloro che non sanno di disinfettare gli input HTML dagli attacchi di script injection. Pubblicato alcuni link qui sotto per ulteriori letture:

MSDN

Stackoverflow

+0

Trovo incredulo che non ci sia modo di farlo per controllo. Anche qualcuno che sa quello che stanno facendo può a volte dimenticare e sarebbe bello avere un ripiego. Comunque +1 comunque perché non sono stato in grado di trovare nulla in contrario. Se non arriva niente entro domani accetterò. – Davy8

+0

Forse qualcosa per .NET 5.0 :) – Tommy

+0

Sono d'accordo che è ridicolo che questo non è supportato, ma la mia comprensione è che @ Tommy è corretto, in realtà non è possibile in ASP.NET corrente. – Stuart

Problemi correlati