10

在 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 和安全标志?

如果不是,那么以编程方式实现这一目标的最佳方法是什么?

4

3 回答 3

8

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

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

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

JSESSIONID cookie:

安全标志:

通过选择 AppServer->[Server Name]->Web Container Settings->Session Management,可以在 WebSphere Application Server 管理界面中设置 Secure 标志。选中“将 cookie 限制为 HTTPS 会话”复选框。

HTTPOnly 标志:

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

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

于 2012-02-08T12:28:49.757 回答
3

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

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

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

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

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

  • 登录 WebSphere 管理控制台
  • 导航到服务器 > 服务器类型 > WebSphere 应用程序服务器
  • 单击服务器名称(默认为server1
  • 单击链接Web 容器设置 > Web 容器
  • 单击链接自定义属性
  • 点击按钮新建
  • 输入名称com.ibm.ws.webcontainer.httpOnlyCookies :*(将在所有 cookie 上设置 HttpOnly,而不仅仅是 JSESSIONID)
  • 点击确定按钮
  • 保存更改
于 2016-01-27T10:57:35.817 回答
0

在 WebSphere 7 中,您可以在管理控制台的Servers > WebSphere application servers > [Server Name] > Session management(在“Container Settings”下)> Enable cookies > Restrict cookies to HTTPS sessions 下找到它

于 2014-04-22T16:25:08.870 回答