url中的某个字符会导致错误500

时间:2012-05-24 02:49:51

标签: asp.net redirect

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

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

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

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

但RawUrl并不仅仅是param asperrorpath的值,Redirect会导致另外500个,并且会发生无限重定向循环。

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

由于

2 个答案:

答案 0 :(得分:0)

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

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

因此,如果您看到该模式,您可以认为它是&#34;&lt; a&#34; ...选择你的组合,否则不会发生。

答案 1 :(得分:0)

HttpUtility.UrlEncode(Context.Request.RawUrl);