首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会话固定-表单身份验证

会话固定-表单身份验证
EN

Stack Overflow用户
提问于 2012-06-03 17:30:04
回答 1查看 4.9K关注 0票数 6

我正在使用Form Authentication is ASP.NET。我正在为一个学校项目运行渗透测试。我正在使用LENS -ASP.NET穿透测试工具。在结果中,它告诉我,我的应用程序可能容易受到会话固定的攻击。有没有人知道如何缓解这种情况?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-03 18:21:30

会话固定是一种攻击,其中一个人固定另一个人的会话标识符(SID)。

攻击从攻击者访问网站并建立有效会话开始,当应用程序提供包含会话ID的cookie时,攻击者已经修复或锁定了已知的正常会话。然后攻击者将诱使受害者使用此会话ID。此时,攻击者和受害者共享相同的会话ID。现在,只要存储在此固定会话中的信息用于为受害者做出决策或显示只有受害者才能看到的信息,攻击者就可能使用和查看这些信息!你可以使用read more here

解决此问题的唯一方法是在任何成功的身份验证之后,ASP.NET 发出新的会话ID,这样一旦受害者登录,攻击者将无法访问该会话。另一点需要记住:在用户登录之前,永远不会传递会话。

请记住,在ASP.net中,Session.Abandon()不足以完成此任务,它不会从用户浏览器中删除会话ID cookie,因此,在会话被放弃后,对同一应用程序的任何新请求都将使用相同的会话ID和一个新的会话状态实例!As Microsoft states here。您需要放弃会话和清除会话ID cookie:

代码语言:javascript
复制
Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));

更改web.config文件中的表单身份验证cookie名称也是一种很好的做法:

代码语言:javascript
复制
<authentication mode="Forms">
  <forms name=".CookieName" loginUrl="LoginPage.aspx" />
</authentication>

这里有一篇关于Session Attacks and ASP.NET和如何解决它的好文章。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10869216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档