2014-06-13 37 views
2

我使用下面的代碼重定向到在我的控制器引薦:如何安全地重定向到引薦網頁?

return Redirect(this.HttpContext.Request.UrlReferrer.AbsolutePath); 

在與應用程序的安全工具,它指出,上面的代碼使網絡釣魚攻擊的掃描。

Web應用程序接受用戶控制的輸入,該輸入指定到外部站點的鏈接,並使用該鏈接生成重定向。這使釣魚攻擊成爲可能。

有沒有什麼辦法可以安全地重定向到referrer?

+0

出於興趣,您爲什麼將用戶重定向到他們來自的頁面? – Moo

回答

2

這聽起來像是一個通用的錯誤,在你的情況下這可能是無害的。這個應用程序秒工具不會意識到你派人回他們原來的確切的頁面,而是看到了你做的是這樣的潛力:如果改變因重定向的URL

return Redirect(
    is_trusted_site(this.HttpContext.Request.UrlReferrer.AbsolutePath) 
    ? sensitiveURL 
    : otherURL 
); 

UrlReferrer的內容,那麼你可以淪爲referrer spoofing

只是一樣,如果你想修復「錯誤」,你可以使用JavaScript的history.back()

1

我沒有看到任何問題,因爲您真正想要的是重定向到誰在整個互聯網上放置鏈接到您的網站的任何問題。您無法控制「引用者」如何在HTTP標頭中結束。這可能是合法的,它可能是僞造的。如果這對你來說沒問題,我沒有看到任何問題。

請注意,有人可以使用您的網站重定向到任何內容,並且可能會發生攻擊。也就是說,發送一封與您的網站相關聯的電子郵件,但在查詢參數中指定了一個釣魚網站。

你打算如何使用它?