我知道带有secure
标志的cookie不会通过未加密的连接发送。我想知道这是如何深入的。
谁负责确定是否会发送cookie?
答案 0 :(得分:76)
客户端仅为加密连接设置此选项,这在RFC 6265:
中定义Secure属性将cookie的范围限制为“安全”通道(其中“安全”由用户代理定义)。当cookie具有Secure属性时,仅当请求通过安全通道(通常是HTTP over Transport Layer Security(TLS)[RFC2818])传输时,用户代理才会在HTTP请求中包含cookie。
尽管看起来对保护活跃网络攻击者的cookie非常有用,但Secure属性仅保护cookie的机密性。活动网络攻击者可以从不安全的通道覆盖安全cookie,破坏其完整性(有关详细信息,请参阅第8.6节)。
答案 1 :(得分:36)
关于这个问题的另一个词:
省略secure
因为您的网站example.com
完全是https是不够的。
如果您的用户明确到达http://example.com
,他们将被重定向到https://example.com
,但现在已经太晚了;第一个请求包含cookie。