我有一个负载均衡器,可以终止对 http 的 https 请求,因此我的后端服务器将它们视为 http。因此,当您在本网站的 https 版本上查看 cookie 时,我的所有 cookie 都设置为没有安全标志。既然我们混合了 http 和 https,这有关系吗?Amazon.com 和其他几个大型电子商务网站似乎在 https 上也有非安全 cookie。
由于负载均衡器,Cookie 不安全
如果 cookie 这么说,它就有“安全”标志。从理论上讲,没有什么可以阻止 HTTP(非 HTTPS)服务器提供“安全”cookie;但是您的服务器软件可能会出现问题,因为从它的角度来看,协议是 HTTP,如果它通过 HTTP 传输,那么安全 cookie 就毫无意义。您的服务器不知道它位于 HTTPS-to-HTTP 网关后面。另一方面,客户端看到的是 HTTPS 连接,通过这样的连接获取安全的 cookie 一点也不奇怪。
不安全 cookie 的问题在于客户端会很乐意将其发送到任何看起来像原始服务器的服务器。在存在主动攻击者的情况下,您必须假设任何不安全的 cookie 都可能被攻击者劫持。根据您的具体情况,这可能是主要、次要或不存在的威胁。
会话 cookie 的 ;secure 标志很重要,因为否则 cookie 是通过 http 发送的。即使您将所有链接和资源都指向 https,攻击者也可能诱骗受害者打开 http 连接。
通常它可以在应用服务器上设置 ;secure 标志。负载均衡器只会在 https 连接中发回答案,对客户端来说一切都很好。主要问题是告诉负载平衡器在其与应用程序服务器的 http 连接中包含 cookie。这取决于负载均衡器的具体实现是自动执行还是需要一些配置。
是的,这很重要。如果未在这些 cookie 上设置安全标志,您很容易受到类似 Firesheep 的攻击,这很糟糕并且可能对用户产生负面影响(例如,特别是通过开放无线连接进行连接的用户)。因此,我建议您确保在这些 cookie 上设置了安全标志。
来自维基百科
安全 cookie 仅在浏览器通过 HTTPS 访问服务器时使用,这将确保 cookie 在从客户端传输到服务器时始终加密,因此不太可能通过窃听而暴露 cookie 盗窃。
所以答案真的是你关心那些通过 http 发送的 cookie 的内容,还是数据敏感,应该总是通过 https 发送。