为什么不重用" ASP.NET_SessionId"?

时间:2016-06-05 14:25:03

标签: asp.net session cookies sessionid

我是asp.net的新手,我不明白为什么不重用" ASP.NET_SessionId"?

根据我的理解,每次用户从服务器请求页面时,IIS都会为他创建一个" ASP.NET_SessionId"并将其放在用户浏览器中的cookie中。

我在这里读到它: https://support.microsoft.com/en-us/kb/899918 并且无法弄清楚为什么我应该在用户注销后删除此cookie。

它说:

  

有时,您可能不想重复使用会话ID。如果你这样做,如果   您了解不重用会话ID的后果,请使用   以下代码示例放弃会话并清除   会话ID cookie:

     

Session.Abandon();

     

Response.Cookies.Add(new HttpCookie(" ASP.NET_SessionId",""));

你能解释一下删除这个cookie有什么好处以及重用它的缺点吗?

1 个答案:

答案 0 :(得分:1)

如果你没有删除它而你正在使用http,则存在安全风险

e.g。

  1. 访问www.dodgyhacker.com,他们有一个不可见的iframe,其中包含www.yoursite.com的登录页面。他们可以看到cookie并将其发送到远程服务器
  2. 现在导航到www.yoursite.com,cookie不会更改并且您登录
  3. 狡猾的黑客现在可以使用您的会话cookie并获得对系统的完全访问权
  4. 实际上还有其他方法可以防止这种情况发生,我不是黑客,所以这可能会有些错误,但这些都是必不可少的步骤