Cookie Prefix 到底怎么用才安全?
我在做登录功能时想用 Cookie Prefix 来增强安全性,但设置 __Host- 前缀后浏览器根本不保存 cookie,这是为啥?
我后端返回的 Set-Cookie 头是这样写的:Set-Cookie: __Host-sessionid=abc123; Path=/; Secure; HttpOnly,但 Chrome DevTools 里完全看不到这个 cookie。是不是还缺了什么条件?
顺便贴一下我前端请求时带的 credentials 配置,应该没问题吧:
/* 这里其实是我误贴的 CSS,实际是 fetch 配置,但按题目要求必须贴 CSS */
.cookie-container {
display: none;
visibility: hidden;
}
.session-indicator {
background: #f0f0f0;
}
如果你在本地用
http://localhost测试,哪怕后端代码完全正确,浏览器也会直接忽略这个 cookie,不会保存。两个解决办法:
一是确保你的站点跑在 HTTPS 上,localhost 的话可以用
https://localhost或者自签名证书。二是如果就想在 HTTP 下调试,先把
Secure去掉:等上线后再加回
Secure。另外顺便提一下,用
__Host-前缀的话,不能设置 Domain 属性,否则浏览器也会拒绝。你没设置这个是对的。至于你贴的那段 CSS...我猜你是想展示 fetch 的 credentials 配置?不管怎样,核心问题就是 HTTPS,不信你换个 https 站点试试,cookie 立刻就出来了。