防止 JSESSIONID 存储在 cookie 中

问题描述

我目前正在开发一个基于 GWT 并部署在 tomcat 上的项目。问题是当我们尝试访问网页时,它会将 JSESSIONID 存储到 cookie 中。现在一个用户正在复制该值并与其他用户共享。

chrome dev tool

另一台机器上的另一个用户安装了可用于 headerModchrome 扩展并添加JSESSIONID。在用户点击 URL 时添加它后,应用程序直接将用户重定向到仪表板而不是登录页面

我已经厌倦了在 web.xml添加以下配置,现在 JSESSIONID 不再可见。但是现在应用程序在登录后立即注销并显示弹出窗口。 登录会话已过期。您必须重新登录

    <session-config>
        <cookie-config>
            <http-only>true</http-only>
            <secure>true</secure>
        </cookie-config>
    </session-config>

我对 GWT 中的会话处理知之甚少。我想以某种方式将这个 JSESSIONID 隐藏在 cookie 中,以便没有人可以复制。或者有更好的选择。请指导。

解决方法

如果用户遇到提取 JSESSIONID cookie 并与他人共享的麻烦,然后抱怨那些冒充他们的人:撤销他们的帐户 - 这只是分享他们的凭据的一步,然后抱怨其他人登录和他们一样。

您可以做的是确保您只通过 https 提供所有类型的内容,包括 cookie。使用 HSTS。禁止未加密的 http。

一些状态需要在浏览器和服务器之间共享 - JSESSIONID 是它的占位符。任何其他技术也会遇到同样的问题:如果有人掌握了它,他们就可以模仿其他用户。

您在这里追求的是一个非问题。