ins*_*ite 5 .net security session session-cookies
我们对我们的网站进行了安全测试,并发现了一个漏洞.
问题
如果访问用户工作站的攻击者知道会话标识符,则可以在用户终止会话后使用会话cookie访问已注销的会话.
建议
在调用注销功能时,确保在服务器端正确终止会话标识符.
码
代码目前执行此操作(如果用户单击"注销按钮")
FormsAuthentication.SignOut();
Roles.DeleteCookie();
Session.Clear();
Run Code Online (Sandbox Code Playgroud)
我不确定如何检查"确保在调用注销函数时在服务器端正确终止会话标识符."
我做了一些研究,并认为我应该这样做呢?
Session.Abandon();
Run Code Online (Sandbox Code Playgroud)
如果没有,我该怎么办?(我不完全确定如何测试这个......)
在ASP.net Session.Abandon()中不足以完成此任务,它不会从用户的浏览器中删除会话ID cookie,因此在放弃会话后对同一应用程序的任何新请求将使用相同的会话ID和新的会话状态实例!正如微软在这里所述.您需要放弃会话并清除会话ID cookie:
Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
Run Code Online (Sandbox Code Playgroud)
在您的web.config文件中更改表单身份验证cookie名称也是一种很好的做法:
<authentication mode="Forms">
<forms name=".CookieName" loginUrl="LoginPage.aspx" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
这是关于会话攻击和ASP.NET以及如何解决它的好文章.
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |