2012-05-24 56 views
0

在網站上做安全掃描後,這兩個字符<一個可能會導致500某些字符的URL原因錯誤500

http://domain.com/default.aspx< a

該錯誤在Application_Error中處理以重定向到error.aspx頁面。

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

但RawUrl不會出現只爲帕拉姆asperrorpath值,重定向會導致另一個500,和無限的重定向循環發生。

我避免重定向循環的唯一解決方案是編碼RawUrl,但我們希望看到用戶請求的真實URL,編碼可能會導致一些信息丟失。有其他解決方案嗎?

謝謝

回答

0

不確定這是否會達到您的目的。也許你可以替換它們

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

所以,如果你看到你可以假定它這種模式是「<了」 ......這樣就不會發生,否則它選擇你的組合。

+0

這個問題,不僅 William

0
HttpUtility.UrlEncode(Context.Request.RawUrl);