我正在使用ASP.NET MVC5 Web应用程序。假设用户的会话超时,他们必须进入登录屏幕再次进行身份验证,然后重定向回他们来自的URL。将返回(回调)URL放在登录URL的查询字符串中是一种好习惯吗?
有人知道PCI的合规性吗?我记得通过PCI培训他们提到了回调网址,但我不记得这是否符合要求。如果没有,ASP.NET MVC中是否有更安全的方式来传递回调URL?我目前没有使用任何Auth / Auth库,只是使用cookie管理手动进行所有身份验证...
提前致谢!
答案 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");
}
有关详细信息,请参阅this