Tengo un problema con el código heredado que requiere que admita URL aleatorias como si fueran solicitudes para la página de inicio. Algunas de las URL tienen caracteres que generan el error "Se detectó un valor Request.Path potencialmente peligroso desde el cliente (&)". El sitio está escrito con ASP.Net MVC 3 (en C#) y se ejecuta en IIS 7.5.Obteniendo "Se detectó un valor Request.Path potencialmente peligroso desde el cliente (&)"
He aquí un ejemplo de URL ...
http://mywebsite.com/Test123/This_&_That
Así es como tengo mi cajón de sastre configuración de ruta (tengo otras rutas para la captura de páginas específicas) ...
routes.MapRoute(
"Default", // Route name
"{garb1}/{garb2}", // URL with parameters
new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
I' hemos añadido las siguientes cosas a mi archivo web.config ...
<configuration>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
<configuration>
también he añadido el atributo ValidateInput a la acción que sh debería estar atrapando las URL ...
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
Pero sigo recibiendo el error. ¿Alguna idea de por qué? ¿Me he perdido algo? Ahora mismo estoy ejecutando mi servidor de desarrollo local (todavía no he probado estas soluciones en producción).
Hay una configuración para permitir ciertos caracteres que revisaré en breve cuando vuelva a estar en la computadora ... pero ¿puede urlencodear su URL? –
posible duplicado de [Se detectó un valor Request.Path potencialmente peligroso desde el cliente (\ *)] (http://stackoverflow.com/questions/5967103/a-potentially-dangerous-request-path-value-was-detected -desde el cliente) – Marijn
No sé por qué motivo el sitio web estaba intentando internamente una redirección que creaba una URL como 'http: // localhost /: // localhost/myWebsiteName /' que me daba el mismo error. No sé por qué ASP.net pipeline lo considera una URL de solicitud peligrosa. – RBT