2012-05-31 32 views
8

Estoy utilizando el Control de inicio de sesión de ASP.NET en mi aplicación web. Quiero mostrar un tipo de error gracioso en una etiqueta cuando se produce esta excepción System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client cuando un usuario intenta hacer un ataque de inyección sql o algunas operaciones HTML o SCRIPT ingresándolas en el campo de texto Nombre de usuario del control de inicio de sesión. Intenté muchas cosas, como encerrar el inicio de sesión de autenticación en el bloque try catch y capturar la excepción System.Web.HttpRequestValidationException haciendo también lo mismo para un evento creado por mí que en onTextChange para el nombre de usuario TextBox. Pero todos estos intentos fallaron. Por favor dígame cómo verificar esta excepción y mostrar un buen mensaje divertido al atacante.Mostrando mensaje de error personalizado en la excepción: Se detectó un valor Request.Form potencialmente peligroso desde el cliente

+0

¿Puede pasar un ejemplo de cómo se ve el código con respecto a lo que está tratando de lograr? gracias – MethodMan

+0

Si está usando IIS7 + hay una solución más simple aquí: - http://stackoverflow.com/questions/30071341/asp-net-mvc-customerror-page-doesnt-get-displayed-for-some-of-the -400 errores/30072933 # 30072933 –

Respuesta

11

Éstos son algunos ejemplos de cómo proporcionar un msg de error más amigable:

http://romsteady.blogspot.com/2007/06/how-to-catch-httprequestvalidationexcep.html

How to catch HttpRequestValidationException in production

Lo que hay que tener en cuenta es que esta excepción se produce antes de código de la página sucede. Por lo tanto, normalmente no puede detectar el error en el código de su página, sino solo en Application_Error.

No he intentado esto por mí mismo, pero this site ofrece una forma alternativa de permitir que se ejecute el código de página, pero aún protegerse de entradas maliciosas usando la lógica incorporada, así como capturar la excepción dentro de su propio código.

Cuestiones relacionadas