MVC 5中的会话修复攻击仍然是一个问题

I.A*_*.Me 14 security cookies asp.net-mvc session asp.net-mvc-5

我一直在阅读很多关于会话固定攻击的内容,我遇到的最流行的解决方案是在用户登录时更改SessionID,并使用GUID创建额外的cookie以验证用户"属于"SessionID.

我的问题是:仅仅删除SessionID cookie(ASP.NET_SessionID)以确保生成新的SessionID是不够的?在MVC 5中,当用户登录其他加密的用户声明时,会创建Cookie(AspNet.ApplicationCookie),Identity会在每次请求时使用该Cookie来验证用户身份.额外的"GUID cookie"似乎是不必要的.

我最初是一个.NET桌面应用程序开发人员,编写我的第一个MVC应用程序,学习曲线有点陡峭......虽然令人耳目一新.

谢谢你的帮助.

Rab*_*spo -3

您可以这样做来避免这种情况:

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 : ");
}
Run Code Online (Sandbox Code Playgroud)

支持链接: 链接