【问题标题】:Secure and HttpOnly flags for session cookie Websphere 7会话 cookie Websphere 7 的 Secure 和 HttpOnly 标志
【发布时间】:2012-02-08 12:14:42
【问题描述】:

在 Servlet 3.0 投诉应用程序服务器中,我可以通过将以下内容添加到 web.xml 来设置会话 cookie (JSESSIONID) 的 HttpOnly 和安全标志:

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

但是,我正在处理的应用程序将部署在 Websphere 7 中,这是 Servlet 2.5 投诉,如果我将上述内容添加到 web.xml 中,它将无法启动

Websphere 7 配置中是否有任何其他声明方式或设置来打开会话 cookie 的 HttpOnly 和安全标志?

如果不是,那么以编程方式完成此任务的最佳方法是什么?

【问题讨论】:

    标签: servlets cookies websphere-7 httponly


    【解决方案1】:

    我认为在 WebSphere 7 中您可能必须深入研究管理控制台。与以往一样,WebSphere 文档似乎很差,但似乎建议设置 com.ibm.ws.security.addHttpOnlyAttributeToCookies 属性:

    通过设置 WebSphere Application Server 属性启用 Secure 标志和 HTTPOnly 标志: com.ibm.ws.security.addHttpOnlyAttributeToCookies.

    我找到了this,我希望它适用于WAS7。你能试试吗(我的系统上目前只有 WAS 8):

    JSESSIONID cookie:

    安全标志:

    可以在 WebSphere Application Server 中设置安全标志 通过选择 AppServer->[Server Name]->Web 管理界面 容器设置-> 会话管理。选中复选框 “将 cookie 限制为 HTTPS 会话”。

    HTTPOnly 标志:

    目前无法在此 cookie 上设置 HTTPOnly 属性。这 在 IBM 站点上注册为 APAR PK98436。此 APAR 的修复 当前的目标是包含在 Fix Pack 6.1.0.31 和 7.0.0.9 中, 尚不可用。有了这个 APAR,HTTPOnly 可以通过属性名称在 JSESSIONID cookie 上设置标志: com.ibm.ws.webcontainer.httpOnlyCookies。参考以下 有关启用 WebContainer 自定义属性的说明的技术说明。

    com.ibm.ws.webcontainer.httpOnlyCookies 属性记录在 WAS 7 帮助站点上。

    【讨论】:

    • 感谢您的链接。但是,我的理解是 JSESSIONID (以及其他)不会受到该属性的影响。对吗?
    • 谢谢。我认为第二个链接特定于 Tivoli,不是吗?您从哪里得到“安全标志和 HTTPOnly 标志均由 ... 启用”引用?
    • www-01.ibm.com/support/docview.wss?uid=swg21422185 - 您尝试过这些解决方案吗?
    【解决方案2】:

    将 Secure 标志设置为 JSESSIONID cookie(WebSphere 7.x 和 8.x 相同):

    • login 登录 WebSphere 管理控制台
    • 导航到 服务器 > 服务器类型 > WebSphere 应用程序服务器
    • 点击服务器名称(默认为server1)
    • 点击链接Web Container设置>Web Container
    • 点击链接会话管理
    • 点击链接启用 Cookies。这有点令人困惑,你必须 点击不在复选框上的文字
    • 选择选项(复选框)将 cookie 限制为 HTTPS 会话
    • 保存更改

    将 WebSphere 8.x 中的 HttpOnly 标志设置为 JSESSIONID cookie

    • login 登录 WebSphere 管理控制台
    • 导航到 服务器 > 服务器类型 > WebSphere 应用程序服务器
    • 点击服务器名称(默认为server1)
    • 点击链接Web Container设置>Web Container
    • 点击链接会话管理
    • 点击链接启用 Cookies。这有点令人困惑,您必须单击复选框而不是文本
    • 选择选项(复选框)将会话 cookie 设置为 HTTPOnly 以帮助防止跨站点脚本攻击
    • 保存更改

    将 WebSphere 7.x 中的 HttpOnly 标志设置为 JSESSIONID cookie

    • login 登录 WebSphere 管理控制台
    • 导航到 服务器 > 服务器类型 > WebSphere 应用程序服务器
    • 点击服务器名称(默认为server1)
    • 点击链接Web Container设置>Web Container
    • 点击链接自定义属性
    • 点击按钮新建
    • 输入 name:com.ibm.ws.webcontainer.httpOnlyCookies value:*(不仅 JSESSIONID 将在所有 cookie 上设置 HttpOnly )
    • 点击确定按钮
    • 保存更改

    【讨论】:

      【解决方案3】:

      在 WebSphere 7 中,您可以在 Servers > WebSphere application servers > [Server Name] > 的管理控制台中找到它>会话管理(在“容器设置”下)> 启用 cookie > 将 cookie 限制为 HTTPS 会话。

      【讨论】:

        猜你喜欢
        • 2013-02-13
        • 2011-12-29
        • 2020-03-15
        • 2023-03-17
        • 2013-02-14
        • 1970-01-01
        • 2013-07-19
        • 2016-07-01
        • 1970-01-01
        相关资源
        最近更新 更多