为何子域网站设置父域Cookie失效?原因排查
你遇到的问题核心在于**公共后缀列表(Public Suffix List, PSL)**的浏览器安全限制:
github.io属于公共后缀列表中的域名,这类域名被浏览器当作"顶级域名"的等价物处理。为了防止恶意网站利用共享后缀的子域名进行跨域Cookie注入(比如不同用户的github.io子域名之间非法共享Cookie),浏览器会禁止从子域名(如square.github.io)设置.github.io域的Cookie。- 当你在控制台执行
document.cookie = "nameCookie=HelloWorld; domain=.github.io;"时,浏览器检测到github.io在公共后缀列表中,会直接拦截这个Cookie设置请求,因此console.log(document.cookie)无法输出对应的Cookie内容。 - 这种限制是浏览器层面的强制安全策略,和目标网站的HTTP头配置无关,是浏览器遵循隐私保护规范的行为。
补充说明:在这类场景下,你只能设置绑定当前子域名的Cookie,比如不指定domain参数(默认绑定square.github.io),或者显式设置domain=square.github.io,这类Cookie只会在当前子域名下生效。
内容的提问来源于stack exchange,提问作者SuVeRa
相关产品推荐
相关产品推荐

