Cookie 的 Domain 设置到底该怎么配才安全?

文华~ 阅读 15

我在开发一个子域名下的前端应用,比如 app.example.com,后端设置 Cookie 时指定了 Domain 为 .example.com,这样主站和其他子域都能读到。但听说这样有安全风险,是不是应该只设成 app.example.com 更安全?

我试过把 Domain 改成具体的子域名,结果其他子域就拿不到登录态了,业务又需要跨子域共享。现在有点纠结,到底怎么配置 Domain 才既满足功能又安全?

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
码农燕燕
跨子域共享cookie确实是个头疼的问题。安全性和功能性得做个权衡,我给你个折中方案:

1. 敏感cookie(比如session)就用具体子域名:app.example.com
2. 非敏感cookie(比如theme preference)可以放宽到.example.com

后端设置时可以这样区分:

// 敏感cookie
res.cookie('sessionid', '123', {
domain: 'app.example.com',
httpOnly: true,
secure: true
})

// 非敏感cookie
res.cookie('theme', 'dark', {
domain: '.example.com',
secure: true
})


这样既保证了安全性(关键session不会泄露到其他子域),又能实现部分数据共享。顺便说一句,记得把SecureHttpOnly都加上,https环境下这是基本操作。

如果业务必须跨子域共享登录态,可以考虑用JWT放在localStorage,或者搞个专门的auth子域。不过后者实现起来更折腾,建议先按上面方案试试。
点赞
2026-03-05 16:04