Cookie 的安全属性包括 Secure、HttpOnly、SameSite 和 Domain/Path 限制,这些属性对于防止 Cookie 被窃取或滥用至关重要。
Secure 标志
- 只能通过 HTTPS 协议传输
- 防止在非加密连接中泄露
- 示例:
Set-Cookie: token=xyz; Secure
HttpOnly 标志
- 禁止 JavaScript 通过 document.cookie 访问
- 防止 XSS 攻击窃取 Cookie
- 示例:
Set-Cookie: sessionId=abc; HttpOnly
SameSite 属性
- 控制跨站请求时是否发送 Cookie
- 值:Strict(严格模式)、Lax(宽松模式)、None(允许跨站)
- 防止 CSRF 攻击
- 示例:
Set-Cookie: token=xyz; SameSite=Strict
Domain 和 Path 限制
- Domain:指定 Cookie 有效的域名
- Path:指定 Cookie 有效的路径
- 限制 Cookie 的作用范围
- 示例:
Set-Cookie: token=xyz; Domain=.example.com; Path=/api
最佳实践:
- 敏感 Cookie 必须设置 Secure 和 HttpOnly
- 使用 SameSite=Lax 或 Strict 防止 CSRF
- 设置合理的 Domain 和 Path 范围
- 定期更新 Cookie 的过期时间