2010-05-24 101 views
1

我有一個關於在嘗試點擊需要身份驗證的頁面時由ASP.Net附加的returnUrl querystring參數的問題。在查看Microsoft NerdDinner Sample的LogOn操作(以及我在網上看到的每個其他'示例認證代碼')時,它只在操作的簽名中聲明ReturnUrl參數,並直接在Redirect()調用中使用它。但是,回到WebForms時代並使用成員控制,我們使用FormsAuthentication.GetReturnUrl()調用。除了在查詢字符串中沒有指定網址的情況下返回「默認網址」,它還會執行一些安全檢查(Cross App Redirect和'IsDangerousUrl()')。這些問題不再是一個問題,還是我看到整個網絡忽略這些問題的所有示例「登錄」操作?ASP.Net MVC ReturnUrl練習

回答

0

我不確定你已經看過的樣本,但它完全可能像在MVC中那樣使用表單驗證,並且受益於FormsAuthenticationModule處理(或直接使用FormsAuthentication類)中執行的檢查。

IIRC,Visual Studio中的默認MVC應用程序包含一個圍繞表單身份驗證的適配器(AuthenticationService),它可以很容易地適用於使用ReturnUrl查詢字符串。

我想象中的問題已經忽略了XSR攻擊。

+0

這是開放的攻擊。利用這篇文章糾正了這個問題。 [防止ASP.NET MVC中的Open Redirection攻擊 ](http://weblogs.asp.net/jgalloway/archive/2011/01/25/preventing-open-redirection-attacks-in-asp-net-mvc.aspx ) – Terry 2011-02-11 20:45:08