108

我知道带有secure标志的 cookie 不会通过未加密的连接发送。我想知道这是如何深入工作的。

谁负责确定是否发送 cookie?

4

2 回答 2

96

客户端仅为加密连接设置此设置,这在RFC 6265中定义:

Secure 属性将 cookie 的范围限制为“安全”通道(其中“安全”由用户代理定义)。当 cookie 具有 Secure 属性时,只有当请求通过安全通道(通常是 HTTP over Transport Layer Security (TLS) [RFC2818])传输时,用户代理才会在 HTTP 请求中包含 cookie。

虽然看起来对于保护 cookie 免受网络攻击者的攻击很有用,但 Secure 属性只保护 cookie 的机密性。活跃的网络攻击者可以覆盖来自不安全通道的安全 cookie,从而破坏它们的完整性(有关详细信息,请参阅第 8.6 节)。

于 2012-12-05T18:43:12.570 回答
52

关于这个主题的另一个词:

secure因为您的网站完全是 https 而省略example.com是不够的。

如果您的用户明确到达http://example.com,他们将被重定向到,https://example.com但这已经太晚了;第一个请求包含 cookie。

于 2016-11-18T16:55:14.883 回答