如何从document.execCommand(“;ClearAuthenticationCache”;)保护我的JSESSIONID?

如何从document.execCommand(“;ClearAuthenticationCache”;)保护我的JSESSIONID?,session,tomcat,cookies,jsessionid,Session,Tomcat,Cookies,Jsessionid,这可能是这个问题的重复,但提出的解决方案对我们来说不可行: 长话短说:IE有一种使用JavaScript-document.execCommand(“ClearAuthenticationCache”)清除会话cookie的方法。这在各种web应用程序中都有使用,包括Outlook web App(可能还有许多其他应用程序)。问题是MS凭借其无穷的智慧决定,此命令应该清除所有开放站点的会话cookies(你能告诉我我有点痛苦吗,我花了几个月的时间才找到随机丢失的JSessionID的来源) 我

这可能是这个问题的重复,但提出的解决方案对我们来说不可行:

长话短说:IE有一种使用JavaScript-
document.execCommand(“ClearAuthenticationCache”)
清除会话cookie的方法。这在各种web应用程序中都有使用,包括Outlook web App(可能还有许多其他应用程序)。问题是MS凭借其无穷的智慧决定,此命令应该清除所有开放站点的会话cookies(你能告诉我我有点痛苦吗,我花了几个月的时间才找到随机丢失的JSessionID的来源)

我们使用JSESSIONID以及另一个令牌来确保用户经过身份验证。JSESSIONID是安全的httpOnly。除非JSESSIONID被第三方删除,否则这种方法工作得很好。因此,我的问题分为两部分:

  • 有没有一种方法可以保护我的会话cookie不受此影响(让我们假设任何涉及客户端配置的东西,例如锁定或注册表黑客,都是不可选项)

  • 如果没有,我有没有办法安全地从中恢复过来?由于JSESSIONID是httpOnly,浏览器应该无法读取它,但可能有一些东西我没有考虑过

  • 如果相关:我们使用Tomcat7作为Web服务器。该应用程序是一个相当复杂的SaaS应用程序,安全性相当重要


    谢谢大家。

    我相信以下任一选项都可以保护servlet会话不受
    document.execCommand(“ClearAuthenticationCache”)
    的影响:

    您可以在您的web.xml文件中找到它。这样,您的JSESSIONID cookie就不再是会话cookie了!这会使您的web应用程序稍微不那么安全,因为浏览器关闭后cookie仍然存在


    您可以完全放弃HTTP Cookie并将其删除。我自己从来没有实际配置过,但我想这比使用JSESSIONID cookies更安全。但是,在此配置中无法进行会话复制。

    非常感谢。第一个方案不可行,但第二个方案很可能解决我们的问题。我们有一个单独的处理SSL的安全设备,但它可以将头中的SSL ID传递给Tomcat,在这一点上,我们可以使用它作为JSESSIONID标识的备份。