我已使用安全标志设置保存了会话Cookie。由于浏览器将在每个XHR上发送cookie,我可以看到正在发送的cookie没有设置security = secure标志。如何确保在发送XHR时,cookie还会发送安全标志? (即安全=安全)
答案 0 :(得分:4)
我可以看到正在发送的cookie没有设置security = secure标志
这是正确的。 Cookie规范要求客户端仅在Cookie:
标头中发送cookie值,而不是元数据(secure
,domain
等)。这适用于所有HTTP请求,XHR或其他。
这种设计的一个缺点是你无法从服务器端告诉最初设置cookie的位置。 https://www.example.com/
上发送给您的Cookie可能实际上是从http://www.example.com/
设置的,但没有secure
标记。它也可能来自http://other-subdomain.example.com/
,将domain
设置为example.com
。没有办法知道。
为了减轻中间人攻击者使用http://www.example.com/
的{{1}}无法保护的连接将Cookie注入https://www.example.com/
的可能性,我们可以采取的措施是仅使用https:
。在http
端口上提供重定向到https:
并设置HTTP Strict Transport Security标头,以防止浏览器在将来连接到http:
地址。