2010-08-23 9 views
6

¿Hay alguna forma de deshabilitar la validación de solicitudes para solo ciertos cuadros de texto en lugar de toda la página? Estoy usando Server.HtmlEncode/Decode porque los usuarios legítimamente están usando < y> caracteres, pero no quiero usar ValidateRequest="false" en toda la página porque alguien podría agregar un cuadro de texto más tarde y olvidarse de escapar de la entrada en cuyo caso yo querría validación para que el error se descubra en lugar de ser vulnerable a la inyección html.asp.net ValidateRequest = falso por cuadro de texto en lugar de por página?

Parece que tiene que haber una solución simple pero no estoy teniendo suerte para encontrarla.

(Webforms no MVC)

+0

Bueno, eso es doloroso -> .NET 4.5 no fue lanzado cuando publiqué mi respuesta. – Tommy

+0

@Tommy Lo sé, ni fue cuando hice la pregunta, sin embargo, es la respuesta más actualizada y sería más útil para los futuros usuarios que la lean. Tu respuesta sigue siendo upvoted sin embargo. – Davy8

+0

Jaja - Lo sé :) Nada personal, pero tenía que venir a echarle un vistazo. PD: parece que estaba cerca con mi comentario de .NET 5.0 a continuación. – Tommy

Respuesta

3

No, solicitud de validación es para toda la solicitud y no se puede hacer en un elemento por elemento de base. La validación de solicitud es habilitada por ASP.NET de forma predeterminada y es para ayudar a aquellos que no saben cómo desinfectar las entradas HTML de los ataques de inyección de scripts. Publicado algunos enlaces siguientes para la lectura adicional:

MSDN

Stackoverflow

+0

Me resulta incrédulo que no hay forma de hacerlo por control. Incluso alguien que sabe lo que está haciendo puede olvidarse ocasionalmente y sería bueno tener una alternativa. Sin embargo +1 de todos modos porque no he podido encontrar nada en contrario. Si nada sale mañana, lo aceptaré. – Davy8

+0

Tal vez algo para .NET 5.0 :) – Tommy

+0

Acepto que es ridículo que esto no sea compatible, pero entiendo que @Tommy es correcto, realmente no es posible en ASP.NET actual. – Stuart

Cuestiones relacionadas