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