【问题标题】:Missing HttpOnly Attribute for Session Identifier with HTTP protocol使用 HTTP 协议的会话标识符缺少 HttpOnly 属性
【发布时间】:2017-05-11 14:27:36
【问题描述】:

之前我为 HTTP/HTTPS 协议都获得了 HttpOnly,但缺少安全属性。

为了添加“Secure”属性,我在 server.xml 的连接器端口语法中添加了 secure="true" 如下 -

<Connector address="10.23.17.69" port="8000" maxHttpHeaderSize="8192"
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" redirectPort="8443" acceptCount="100"
           connectionTimeout="60000" disableUploadTimeout="true" URIEncoding="UTF-8"  server="Dev" secure="true" />

还在 web.xml 中添加了“cookie-config”,如下所示——

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

现在对于 HTTPS 协议,我将“安全”和“HttpOnly”标志设置为会话 cookie 的真值,如下所示。

但是对于 HTTP 协议,我没有获得 HttpOnly 属性。如果是 HTTP 协议,我需要“HttpOnly=true”。

请注意,我的 context.xml 的“Context”元素已经包含如下 useHttpOnly 属性 -

<Context useHttpOnly="true">
 ....
</Context>

非常感谢任何建议。

【问题讨论】:

    标签: java servlets session-cookies httponly cookie-httponly


    【解决方案1】:

    阅读此article 我认为您错误地设置了会话 cookie 属性。

    应该是:

    <Context cookies="true" crossContext="true">
      <SessionCookie secure="true" httpOnly="true" />
    

    【讨论】:

      猜你喜欢
      • 2012-04-07
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      相关资源
      最近更新 更多