【发布时间】:2013-06-19 22:19:12
【问题描述】:
我们在 ASP.Net MVC3 站点中启用了无 cookie 身份验证和会话。我们遇到的问题是,如果您注销用户,它不会使存储在无 cookie 字符串中的已创建 cookie/会话无效。场景如下:
用户使用无cookie身份验证登录网站、注册和登录;用户现在在其 url 中有无 cookie 票证。用户通过创建桌面快捷方式或复制粘贴来复制 url。
用户退出站点,调用 FormAuthentication.SignOut() 使票证无效并重定向到登录页面。
用户现在可以简单地将该 URL 复制并粘贴到任何浏览器中,甚至可以转到另一台计算机,即使他们已经注销,该站点也会接受该身份验证票;造成严重的安全风险。
有没有办法禁用所有以前的 cookie,无论是否无 cookie?目前,我们的流程适用于基于 cookie 的会话/登录;我们只需要一个无 cookie 的解决方案。
到目前为止,我们找到的唯一可能的解决方案是跟踪数据库中的所有 cookie,并使数据库中的 cookie 无效,并检查 db 以确保当前 cookie 仍然有效。这会显着影响性能,因此我们希望在继续之前验证这是唯一/最佳的解决方案。
谢谢
【问题讨论】:
标签: asp.net asp.net-mvc cookieless