防止 asp.net mvc 应用程序中的会话劫持
Prevent Session Hijacking in asp.net mvc application
我们如何防止 asp.net mvc 应用程序中的会话劫持?测试人员执行了以下步骤来劫持会话 - OWASP A2.
- 以低权限用户登录。
- 以管理员用户身份登录。 (在单独的浏览器中 - 来自同一台机器)
- 复制了管理员用户
ASP.Net Session ID
- 将低权限用户的
ASP.Net Session ID
替换为管理员用户的 ASP.Net Session ID
。
通过执行上述步骤,低访问权限的用户能够访问应用程序的管理区域。
- 应用程序由
SSL (https)
托管。
- Cookie 已设置为
Secure
和 HttpOnly
。
- Cookie 设置为
Session_End
和 Signout
。
不过,我仍然能够使用 Fiddler
重现上述场景。有人可以帮忙解决上述问题吗?
谢谢。
我认为,如果有人能够保留 cookie,那么她应该能够登录。缓解措施应该是对敏感资源使用短期 cookie,并要求用户重新输入她的凭据在处理任何敏感数据之前。例如,设置密码、授予权限等。此外,您应该使保留 cookie 变得困难——看起来您已经这样做了。也值得添加 Same-Site),并确保您的网站安全。
我们如何防止 asp.net mvc 应用程序中的会话劫持?测试人员执行了以下步骤来劫持会话 - OWASP A2.
- 以低权限用户登录。
- 以管理员用户身份登录。 (在单独的浏览器中 - 来自同一台机器)
- 复制了管理员用户
ASP.Net Session ID
- 将低权限用户的
ASP.Net Session ID
替换为管理员用户的ASP.Net Session ID
。
通过执行上述步骤,低访问权限的用户能够访问应用程序的管理区域。
- 应用程序由
SSL (https)
托管。 - Cookie 已设置为
Secure
和HttpOnly
。 - Cookie 设置为
Session_End
和Signout
。
不过,我仍然能够使用 Fiddler
重现上述场景。有人可以帮忙解决上述问题吗?
谢谢。
我认为,如果有人能够保留 cookie,那么她应该能够登录。缓解措施应该是对敏感资源使用短期 cookie,并要求用户重新输入她的凭据在处理任何敏感数据之前。例如,设置密码、授予权限等。此外,您应该使保留 cookie 变得困难——看起来您已经这样做了。也值得添加 Same-Site),并确保您的网站安全。