2012-12-05 75 views

回答

51

此只对加密的连接和该客户端套在RFC 6265定义:

所述安全属性限制cookie来“安全”信道的范围(其中,“安全”是由用户代理定义)。当cookie具有安全属性时,仅当请求通过安全通道(通常是基于传输层安全性(TLS)的HTTP [RFC2818])传输时,用户代理才会将cookie包含在HTTP请求中。

尽管看起来对于保护来自活动网络攻击者的cookie非常有用,但Secure属性仅保护cookie的机密性。主动网络攻击者可以覆盖来自不安全通道的安全cookie,破坏其完整性(详见8.6节)。

+4

如果客户端还没有cookie,并且它们应该从服务器端发送(例如登录),服务器端是否可以决定是否包含cookie? – ted

+2

服务器最初通过“Set-Cookie headers”设置cookie – Ivan

22

就关于这个问题的另一个词:

省略secure,因为你的网站example.com完全HTTPS是不够的。

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

+3

我知道这是旧的,但HSTS预加载通过防止频繁发生此问题来帮助解决这种情况。它仍然不是100%修复,但它只是另一件考虑,如果你真的想要避免安全的cookie。 –

+2

@ Mr.MonoChrome为什么你想避免安全的cookie? – MEMark

+0

@MonoChrome先生,虽然一些较老或较低规格的浏览器,我相信,甚至不支持HSTS – Anthony