Asp.net 会话固定-表单身份验证
我使用的表单身份验证是ASP.NET。我正在为一个学校项目进行渗透测试。我正在使用LENS-ASP.NET穿透测试工具。在结果中,它告诉我,我的应用程序可能容易受到会话固定的攻击。有人知道如何缓解这种情况吗Asp.net 会话固定-表单身份验证,asp.net,session,testing,Asp.net,Session,Testing,我使用的表单身份验证是ASP.NET。我正在为一个学校项目进行渗透测试。我正在使用LENS-ASP.NET穿透测试工具。在结果中,它告诉我,我的应用程序可能容易受到会话固定的攻击。有人知道如何缓解这种情况吗 感谢会话固定是指一个人固定另一个人的会话标识符(SID)的攻击 攻击从攻击者访问网站并建立有效会话开始,当应用程序交付包含会话ID的cookie时,攻击者已修复或锁定已知良好会话。然后,攻击者将诱使受害者使用此会话ID。此时,攻击者和受害者共享相同的会话ID。现在,无论何时,此固定会话中存储
感谢会话固定是指一个人固定另一个人的会话标识符(SID)的攻击 攻击从攻击者访问网站并建立有效会话开始,当应用程序交付包含会话ID的cookie时,攻击者已修复或锁定已知良好会话。然后,攻击者将诱使受害者使用此会话ID。此时,攻击者和受害者共享相同的会话ID。现在,无论何时,此固定会话中存储的信息用于为受害者做出决策或显示只有受害者才应该看到的信息,攻击者都可能使用和查看这些信息!你可以 唯一的解决办法是ASP.NET在任何成功的身份验证后发出一个新的会话ID,这样一旦受害者登录,攻击者将无法访问会话。要记住的另一点:在用户登录之前,不要交付会话。 请记住,在ASP.net
会话中,放弃()对于此任务来说是不够的,它不会从用户的浏览器中删除会话ID cookie,因此在放弃会话后,对同一应用程序的任何新请求都将使用相同的会话ID和新的会话状态实例。您需要放弃会话和清除会话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>
以及如何解决它。很抱歉再次提出一个6年前的问题,但您的答案无效。如果我在成功登录后添加您描述的代码,则不会出现错误,但用户只需重新定向到登录页面。@TomRegan在用户登录之前,只需在登录页面上重置会话,就足以防止会话固定。@Kamyanazeri您有代码示例来演示您的意思吗“只是在登录页面上重置会话”。我无法让它工作;无论我将此重置放在何处,用户都会被重定向回登录页面。