为什么“安全” cookie不安全?

时间:2019-06-13 10:13:20

标签: http security cookies https

MDN docs on HTTP cookies状态:

  

仅通过HTTPS协议以加密请求将安全cookie发送到服务器。即使使用安全保护,也不应该将敏感信息存储在cookie中,因为它们本质上是不安全的,并且此标志不能提供真正的保护。

HTTPS请求具有其请求主体,并使用TLS加密所有标头,包括Set-Cookie:响应标头和Cookie:请求标头。这样可以防止第三方读取或篡改Cookie值。

那为什么cookie会“固有地不安全”?(也许Mozilla认为可以访问用户计算机的人能够检查其cookie?)

1 个答案:

答案 0 :(得分:1)

为什么Cookie“天生不安全”?

Cookie的最大问题是:它存储在用户的计算机中,这带来了许多可能性。一旦发送给客户端,服务器就失去了对Cookie隐私的控制。由于Cookie数据存储在用户的计算机中,因此在以下情况下数据可能会泄漏:

  • 攻击者利用了操作系统中的漏洞。
  • 攻击者利用用户代理中的漏洞。
  • 浏览器扩展程序可以获得读取Cookie的权限(例如Chrome)。是的,将向用户显示通知,但是很多人只是忽略该警报并单击“是”。
  • 其他人可以在浏览器开发工具中检查Cookie。
  • 更多...

对于secure标志,如果您将secure Cookie中的敏感信息发送到浏览器,则仍然存在安全问题:

  • 只要未设置httpOnly标志,所有恶意脚本都可以读取该cookie,并将信息发送到任何服务器。
  • 如果domain设置不正确,则可能会将该敏感Cookie泄漏到某些接口。例如,如果secure cookie的domain/,则所有后端API都会接收敏感数据,而这可能不是您想要的。