0

对网站进行安全扫描后,这两个字符<a会导致 500

http://domain.com/default.aspx<一个

该错误在 Application_Error 中处理以重定向到 error.aspx 页面。

Application_Error()  
{  
 Response.Redirect("/error.aspx?asperrorpath=" + Context.Request.RawUrl);  
}

但是 RawUrl 并不仅仅作为参数 asperrorpath 的值出现,Redirect 将导致另一个 500,并且会发生无限重定向循环。

避免重定向循环的唯一解决方案是对 RawUrl 进行编码,但我们希望看到用户请求的真实 URL,编码可能会导致一些信息丢失。还有其他解决方案吗?

谢谢

4

2 回答 2

0
HttpUtility.UrlEncode(Context.Request.RawUrl);
于 2012-05-24T03:14:43.327 回答
0

不确定这是否符合您的目的。也许你可以更换它们

Application_Error()  
{  
   Response.Redirect("/error.aspx?asperrorpath=" + String.Replace(Context.Request.RawUrl,"<a","^^$$^^");  
}

因此,如果您看到该模式,您可以假设它是“< a”...选择您的组合,这样它就不会发生。

于 2012-05-24T02:56:31.557 回答