【问题标题】:default behavior of cookies over SSLSSL 上 cookie 的默认行为
【发布时间】:2014-10-14 18:50:51
【问题描述】:

我的 Web 应用程序完全使用 SSL。我想了解以下几点:

  1. 我只是想知道是否有可能在 HTTP 而不是安全的 https。

  2. 或者,如果应用程序使用 SSL,那么 cookie 的默认行为是什么。它们将通过 HTTP 或 HTTPS 共享。

  3. 如果我想确保所有 cookie 仅通过 HTTPS 共享,是否必须进行一些额外设置。

  4. 如何为 Java 应用程序进行这些设置(如果需要)。

  5. 安全 cookie 的外观如何。它是加密后可见还是根本不可见。

在我的应用程序中,我使用 mozilla add on : firebug 来检查所有 cookie 的安全性。我可以看到很少有 cookie 是安全的,而很少有没有。那么这是如何工作的。我没有使用任何特定属性来确保少数 cookie 的安全。

【问题讨论】:

标签: java ssl cookies websphere httponly


【解决方案1】:

在符合 Servlet 3.0 的应用服务器中,您可以通过将以下内容添加到 web.xml 来为会话 cookie (JSESSIONID) 设置 Http only 和安全标志:

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

Secure and HttpOnly flags for session cookie Websphere 7

对于其他 cookie,您可以设置 secure 标志:

公共无效setSecure(boolean flag)

指示是否应仅使用安全的方式发送 cookie 协议,例如 HTTPS 或 SSL。

http://docs.oracle.com/javase/7/docs/api/java/net/HttpCookie.html#setSecure%28boolean%29

安全 cookie 不使用任何(额外的)加密。 SSL/TLS 传输层为 HTTPS 提供加密,因此包含 cookie 的 HTTP 协议将被加密。

关于 Q 1..3:如果连接使用 HTTP 并且您将 cookie 标记为安全,它们将通过 HTTP 发送到客户端,但(兼容的)客户端不会发送它们通过非安全连接返回。安全标志的默认值未指定 afaik。因此,如果通过 HTTPS(直接或通过反向代理)访问 Web 应用程序,我建议将所有应用程序指定的 cookie 的安全标志设置为 true。

【讨论】:

  • 感谢@mjn 的快速响应。这将保护所有应用程序特定的 cookie 或仅会话 cookie
  • 谢谢.. 解决了我的 qs 4 n 5.. 你有关于 1,2,3 的信息吗
  • @user3610891 我建议将您的服务器端代码和 cookie 信息放在一个新的 Stackoverflow 问题中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-09
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多