非公共后缀列表域名的SameSite规则及iframe Cookie设置疑问
先搞清楚浏览器判断「同站」的核心逻辑:
- 浏览器靠**公共后缀列表(PSL)**区分站点:站点由「公共后缀+紧邻的前一级域名」组成。比如公共后缀是.com时,web.dev和www.web.dev都属于web.dev站点。
- 如果某个后缀不在公共后缀列表里(比如你说的
company.local),浏览器会把整个域名的最上层私有部分当作站点判定依据。放到你的场景里:short.company.local和some.long.name.company.local会被判定为同站,因为它们共享company.local这个私有后缀,且该后缀不在PSL中。
回到你的问题:当short.company.local通过iframe加载some.long.name.company.local,且Cookie的SameSite设为lax时,完全可以正常设置Cookie。原因很简单:
- SameSite=Lax的规则是:同站上下文里的所有请求都能设置Cookie;只有跨站的非顶级导航(比如iframe嵌入、AJAX请求)才会被限制。
- 既然两个域名属于同站,iframe里的请求就是同站上下文,符合Lax的允许范围,所以Cookie能正常设置。
额外提一句:要是你的私有后缀(比如company.local)不小心被加入了公共后缀列表,那情况就反过来了——这时候两个域名会被判定为跨站,Lax策略会阻止iframe里设置Cookie。不过这种情况在私有自定义后缀里几乎不会出现。
内容的提问来源于stack exchange,提问作者leo
相关产品推荐
相关产品推荐

