gpt4 book ai didi

.net - 终止服务器上的 session 标识符

转载 作者:行者123 更新时间:2023-12-04 18:46:39 33 4
gpt4 key购买 nike

我们对我们的网站进行了安全测试,并发现了一个漏洞。

问题

If the session identifier were known by an attacker who had access to the user's workstation, the logged out session could be accessed using the session cookie after the user had terminated their session.



推荐

Ensure that session identifiers are correctly terminated on the server side when the logout function is invoked.



代码

代码当前执行此操作(如果用户单击“注销按钮”)
        FormsAuthentication.SignOut();
Roles.DeleteCookie();
Session.Clear();

我不确定如何检查“确保在调用注销功能时 session 标识符在服务器端正确终止”。

我做了一些研究,认为我应该这样做吗?
        Session.Abandon();

如果没有,我该怎么办? (我不完全确定如何测试这个......)

最佳答案

在 ASP.net Session.Abandon()对这个任务来说是不够的,它不会从用户的浏览器中删除 session ID cookie,所以对同一个应用程序的任何新请求,在 session 被放弃后,将使用相同的 session ID 和一个新的 session 状态实例! As Microsoft states here .您需要放弃 session 清除 session ID cookie:

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

在您的 web.config 中更改表单例份验证 cookie 名称也是一个好习惯。文件:
<authentication mode="Forms">
<forms name=".CookieName" loginUrl="LoginPage.aspx" />
</authentication>

这是一篇关于 Session Attacks and ASP.NET 的好文章以及如何解决。

关于.net - 终止服务器上的 session 标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13144125/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com