Deshabilitar solicitud.Validación/Codificar URL
Frecuentes
Visto 293 veces
1
Tengo una página de formularios web asp.net simple que simplemente intercepta solicitudes http, extrae parámetros de la cadena de consulta, realiza algunas comprobaciones y redirige la solicitud en función de los parámetros.
Últimamente, he visto errores HttpRequestValidationException en el registro. Esto se debe a que las direcciones URL que estamos tomando no están codificadas y tenemos Request.Validation establecido en verdadero.
Ahora, me gustaría dejar de recibir este error, pero aún me gustaría estar protegido contra la inyección. Estaba pensando que podría desactivar Request.Validation y simplemente codificar la URL antes de hacer algo con ella. ¿Es esta una solución válida? Además, ¿qué tipo de codificación debo usar? ¿Codificación HTML o codificación URL? Supongo que la codificación HTML no protegerá contra la inyección de javascript o sql, ¿verdad?
Gracias de antemano.
1 Respuestas
0
Ahora, me gustaría dejar de recibir este error.
¿Hay alguna razón por la que le gustaría dejar de recibir esto? Esto es bueno: te dice que se detectó una solicitud peligrosa. Si desea evitar que estos golpeen los registros, ¿por qué no tragarse la excepción?
Esto haría el truco (Global.asax):
void Application_Error(object sender, EventArgs e)
{
Exception exc = Server.GetLastError();
if(exc.GetType() == typeof(HttpRequestValidationException))
{
//ignore and don't write to log
}
}
Esto también tiene la ventaja de seguir registrando todas las demás excepciones.
contestado el 03 de mayo de 12 a las 18:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c# asp.net or haz tu propia pregunta.
Bueno, las solicitudes que estoy interceptando provienen de mi sistema, así que sé que las solicitudes no son realmente peligrosas, simplemente no están codificadas. - user1373121