防止 asp.net mvc 应用程序中的会话劫持

Prevent Session Hijacking in asp.net mvc application

我们如何防止 asp.net mvc 应用程序中的会话劫持?测试人员执行了以下步骤来劫持会话 - OWASP A2.

  1. 以低权限用户登录。
  2. 以管理员用户身份登录。 (在单独的浏览器中 - 来自同一台机器)
  3. 复制了管理员用户ASP.Net Session ID
  4. 将低权限用户的 ASP.Net Session ID 替换为管理员用户的 ASP.Net Session ID

通过执行上述步骤,低访问权限的用户能够访问应用程序的管理区域。

  1. 应用程序由 SSL (https) 托管。
  2. Cookie 已设置为 SecureHttpOnly
  3. Cookie 设置为 Session_EndSignout

不过,我仍然能够使用 Fiddler 重现上述场景。有人可以帮忙解决上述问题吗?

谢谢。

我认为,如果有人能够保留 cookie,那么她应该能够登录。缓解措施应该是对敏感资源使用短期 cookie,并要求用户重新输入她的凭据在处理任何敏感数据之前。例如,设置密码、授予权限等。此外,您应该使保留 cookie 变得困难——看起来您已经这样做了。也值得添加 Same-Site),并确保您的网站安全。