2013-12-19 44 views
1

我在我的c#代碼中使用了response.redirect,但它顯示出開放重定向漏洞。如何解決在Asp.net 2.0版本中打開重定向URL

的代碼如下:

Response.Redirect("abcd.aspx?catId=" + HttpUtility.HtmlEncode(dropdown.SelectedValue) + ""); 

什麼代碼,我可以用它來修復開放重定向漏洞。

+0

你好@Brad Larson,你可以看到我給出的代碼,在response.redirect中我們使用了一個虛擬路徑。所以,我對你提出的建議感到困惑。你能否給出一個清晰的圖片**或代碼**,這有助於我解決這個問題?我已經嘗試了Darvin給出的解決方案[link](http://stackoverflow.com/questions/2909706/how-to-avoid-open-redirect-vulnerability-and-safely-redirect-on-successful-login/2910534#2910534)但它不適用於我。根據我的知識,它對MVC很有用,但在我的情況下,它是2.0版本的簡單ASp.net網站。 – user3119748

回答

0

由於達林季米特洛夫規定在his answer here

是的,這是一個漏洞。在重定向之前,您需要通過將returnUrl字符串參數傳遞給Uri對象來檢查 ,並確保目標域與請求域相同。你 也應該考慮的情況下,當returnUrl是一個相對 地址/管理。在這種情況下沒有問題,因爲重定向將是 到同一個應用程序。

+0

請像上面所做的那樣,阻止從其他來源複製的任何文本。這清楚地說明了什麼是和不是你的。 –