2026年5月30日 01:00

Cookie 有哪些安全风险?如何防范 XSS、CSRF 和窃取?

Cookie 的主要风险有四类:XSS 读取 document.cookie、CSRF 借浏览器自动带 Cookie 发请求、HTTP 明文传输被中间人截获,以及 Domain/Path 配置过宽导致 Cookie 被子域或无关路径滥用。敏感 Cookie 应由服务端设置,并组合使用 HttpOnlySecureSameSite=Lax/Strict、短有效期和签名校验。注意:SameSite 能降低 CSRF 风险,但高风险写操作仍建议校验 CSRF Token 或 Origin/Referer。

追问

HttpOnly 能彻底防住 XSS 吗?

不能。它只是禁止 JavaScript 读取 Cookie,不能阻止脚本执行,也不能阻止恶意脚本发起带 Cookie 的请求。

SameSite=Lax 和 Strict 怎么选?

普通登录态多用 Lax,兼顾外部链接跳转体验;支付、后台管理等高风险场景可用 Strict。

不要信任客户端值。服务端应对 Cookie 做签名或只存 sessionId,真实权限状态放服务端。

实际项目里最容易漏什么?

SameSite=None 忘记配 Secure,浏览器会拒绝或异常处理;另一个坑是把主站 session 设置到 .example.com,导致子域风险放大。

写段代码

http
Set-Cookie: __Host-session=abc; Path=/; Secure; HttpOnly; SameSite=Lax; Max-Age=3600
标签:Cookie