为什么不重用 "ASP.NET_SessionId"?
Why not to reuse "ASP.NET_SessionId"?
我是 asp.net 的新手,我不明白为什么不重复使用“ASP.NET_SessionId”?
据我了解,每次用户从服务器请求页面时,IIS 都会为他创建一个“ASP.NET_SessionId”并将其放入用户浏览器的 cookie 中。
我在这里读到:
https://support.microsoft.com/en-us/kb/899918
并且无法弄清楚为什么我应该在用户注销后为他删除这个 cookie。
它说:
Sometimes, you may not want to reuse the session ID. If you do and if
you understand the ramifications of not reusing the session ID, use
the following code example to abandon a session and to clear the
session ID cookie:
Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
你能解释一下删除这个 cookie 的好处和重新使用它的坏处吗?
如果你不删除它并且你正在使用 http 那么它是一个安全风险
例如
- 转到 www.dodgyhacker.com,他们有一个不可见的 iframe,其中包含 www.yoursite.com 的登录页面。他们可以看到 cookie 并将其发送到远程服务器
- 现在导航至 www.yoursite.com,cookie 未更改且您登录
- 狡猾的黑客现在可以使用您的会话 cookie 并获得对系统的完全访问权限
实际上还有其他方法可以防止这种情况发生,我不是黑客所以这可能有点错误,但这些是基本步骤
我是 asp.net 的新手,我不明白为什么不重复使用“ASP.NET_SessionId”?
据我了解,每次用户从服务器请求页面时,IIS 都会为他创建一个“ASP.NET_SessionId”并将其放入用户浏览器的 cookie 中。
我在这里读到: https://support.microsoft.com/en-us/kb/899918 并且无法弄清楚为什么我应该在用户注销后为他删除这个 cookie。
它说:
Sometimes, you may not want to reuse the session ID. If you do and if you understand the ramifications of not reusing the session ID, use the following code example to abandon a session and to clear the session ID cookie:
Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
你能解释一下删除这个 cookie 的好处和重新使用它的坏处吗?
如果你不删除它并且你正在使用 http 那么它是一个安全风险
例如
- 转到 www.dodgyhacker.com,他们有一个不可见的 iframe,其中包含 www.yoursite.com 的登录页面。他们可以看到 cookie 并将其发送到远程服务器
- 现在导航至 www.yoursite.com,cookie 未更改且您登录
- 狡猾的黑客现在可以使用您的会话 cookie 并获得对系统的完全访问权限
实际上还有其他方法可以防止这种情况发生,我不是黑客所以这可能有点错误,但这些是基本步骤