会话cookie Websphere 7的安全和HttpOnly标志

时间:2012-02-08 12:14:43

标签: servlets cookies websphere-7 httponly

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

如果没有,那么以编程方式完成该方法的最佳方法是什么?

3 个答案:

答案 0 :(得分:8)

我认为在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中设置Secure标志   通过选择AppServer-&gt; [服务器名称] - &gt; Web来管理界面   容器设置 - &gt;会话管理。选中复选框   “将Cookie限制为HTTPS会话”。

     

HTTPOnly标志:

     

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

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

答案 1 :(得分:3)

将Secure标志设置为JSESSIONID cookie(对于WebSphere 7.x和8.x也是如此):

  • 登录WebSphere管理控制台中的日志
  • 导航至服务器&gt;服务器类型&gt; WebSphere应用程序服务器
  • 点击服务器名称(默认为 server1
  • 点击链接网络容器设置&gt; Web容器
  • 点击链接会话管理
  • 点击链接启用Cookie 。这一点有点令人困惑,你必须这样做 点击复选框上没有的文字
  • 选择选项(复选框)将Cookie限制为HTTPS会话
  • 保存更改

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

  • 登录WebSphere管理控制台中的日志
  • 导航至服务器&gt;服务器类型&gt; WebSphere应用程序服务器
  • 点击服务器名称(默认为 server1
  • 点击链接网络容器设置&gt; Web容器
  • 点击链接会话管理
  • 点击链接启用Cookie 。这有点令人困惑,你必须点击复选框上没有的文字
  • 选择选项(复选框)将会话Cookie设置为HTTPOnly以帮助防止跨站点脚本攻击
  • 保存更改

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

  • 登录WebSphere管理控制台中的日志
  • 导航至服务器&gt;服务器类型&gt; WebSphere应用程序服务器
  • 点击服务器名称(默认为 server1
  • 点击链接网络容器设置&gt; Web容器
  • 点击链接自定义提交
  • 点击按钮新建
  • 输入名称 com.ibm.ws.webcontainer.httpOnlyCookies :*(HttpOnly将在所有Cookie上设置,不仅仅是JSESSIONID )
  • 点击确定按钮
  • 保存更改

答案 2 :(得分:0)

在WebSphere 7中,您可以在服务器&gt;下的管理控制台中找到它。 WebSphere应用程序服务器&gt; [服务器名称] &gt; 会话管理(在&#34;容器设置&#34;下)&gt; 启用Cookie &gt; 将Cookie限制为HTTPS会话