MVC 5中的会话修复攻击仍然是一个问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC 5中的会话修复攻击仍然是一个问题相关的知识,希望对你有一定的参考价值。
我一直在阅读很多关于会话固定攻击的内容,我遇到的最流行的解决方案是在用户登录时更改SessionID,并使用GUID创建额外的cookie来验证用户“属于”SessionID。
我的问题是:仅仅删除SessionID cookie(ASP.NET_SessionID)以确保生成新的SessionID是不够的?在MVC 5中,当用户登录其他加密的用户声明时,会创建Cookie(AspNet.ApplicationCookie),Identity会在每次请求时使用该Cookie来验证用户身份。额外的“GUID cookie”似乎是不必要的。
我最初是一个.NET桌面应用程序开发人员,编写我的第一个MVC应用程序,学习曲线有点陡峭......虽然令人耳目一新。
谢谢你的帮助。
答案
您可以这样做以避免这种情况:
SessionIDManager Manager = new SessionIDManager();
string NewID = Manager.CreateSessionID(Context);
string OldID = Context.Session.SessionID;
bool redirected = false;
bool IsAdded = false;
Manager.SaveSessionID(Context, NewID, out redirected, out IsAdded);
Response.Write("Old SessionId Is : " + OldID);
if (IsAdded)
{
Response.Write("<br/> New Session ID Is : " + NewID);
}
else
{
Response.Write("<br/> Session Id did not saved : ");
}
支持链接:Link
以上是关于MVC 5中的会话修复攻击仍然是一个问题的主要内容,如果未能解决你的问题,请参考以下文章
MVC 4:如何在 IIS 重启后保持会话和 cookie 仍然有效?