2015-10-13 85 views
-1

我正在研究ASP.NET MVC5 Web應用程序。假設用戶的會話超時,他們必須轉到登錄屏幕再次進行身份驗證,然後重定向到他們來自的URL。將返回(回調)URL放在登錄URL的查詢字符串中是否是一種好的做法?將回調URL放在URL的查詢字符串中安全嗎?

有人知道PCI合規性嗎?我記得經歷了PCI培訓,他們提到了回撥網址,但我不記得這是否符合合規性。如果沒有,ASP.NET MVC中是否有更安全的方法來傳遞迴調URL?我目前不使用任何身份驗證/身份驗證庫,只是使用cookie管理手動執行所有身份驗證...

在此先感謝!

+0

this爲什麼不直接使用一個HTTP POST與網址在某處登錄請求? –

+0

聽起來不錯。不過,我正在通過jQuery中的對話框調用登錄屏幕。有沒有辦法用JavaScript直接生成一個完整頁面的HTTP POST數據? – Nautic20

+0

您有權限更改登錄屏幕代碼嗎? –

回答

1

像任何其他代碼一樣,它可以是或不是PCI兼容的,這取決於是否正確/安全地實現。

例如:

private ActionResult RedirectReturnUrl(string returnUrl) 
{ 
    return Redirect(returnUrl); 
} 

如果使用上面這段代碼重定向到returnUrl在查詢字符串,你會受到open redirection attacks

但是,可以讓這個安全如果你確保returnUrl是本地到當前host

private ActionResult RedirectToLocal(string returnUrl) 
{ 
    if (Url.IsLocalUrl(returnUrl)) 
    { 
    return Redirect(returnUrl); 
    } 

    return RedirectToAction("Index", "Home"); 
} 

更多細節

+0

太棒了!謝謝,這正是我正在尋找的。文章也有幫助。 – Nautic20