嘟嘟社区

[疑问] 设置cookie的问题


大家都知道, 访问 aaa.123.com 时, 可以把cookie的域名设置成 .123.com 对所有属于123.com域名下的都生效,

那访问 xxx.eu.org时, 可不可以把cookie的域设置成 .eu.org ?      *.ug.kg 这些免费的域名也同理,

那访问 xxx.com.cn 呢,  可以把cookie设置成 .com.cn 吗, 不就对所有.com.cn网站都生效了

本帖最后由 wawos 于 2024-10-22 09:50 编辑

还是说浏览器在本地就内置了哪些属于是域名的后缀, 比如 eu.org,  com.cn   free.fr ?

这些有2段的后缀不能单独当成域名来设置?

这些后缀每年随时都会变化更新的啊

浏览器在处理cookie域时,确实内置了“公共后缀列表”(Public Suffix List,简称 PSL),这份列表用于防止某些域名范围内的跨域cookie设置,避免滥用。对于像 eu.org、com.cn 这样的二级或多级公共后缀,浏览器不允许将cookie的域设置为这些后缀,以防止不相关的网站之间共享cookie。
解释:

    公共后缀(Public Suffix):比如 .com.cn 和 .eu.org,它们不是普通的网站域名,而是公共域名后缀,通常由多个不同实体使用。浏览器使用 PSL 来识别这些公共后缀,阻止将 cookie 设置为 .com.cn 或 .eu.org 这样的域名。

    PSL 的作用:PSL 确保cookie只在特定的子域名下有效,避免跨域设置cookie。例如:
        访问 aaa.123.com 时,可以将cookie域设置为 .123.com,这对 bbb.123.com 也是有效的,因为它们属于同一个顶级域名 123.com。
        但是在访问 xxx.com.cn 时,浏览器不允许将cookie域设置为 .com.cn,因为 .com.cn 是公共后缀,属于PSL的一部分,多个不同的公司或组织可能拥有不同的 .com.cn 子域。

浏览器行为:

浏览器在访问网页时,会自动参考内置的 PSL 列表,拒绝在这些公共后缀上设置 cookie。这确实防止了跨多个不相关站点的cookie共享问题。
这些后缀的变化:

PSL 列表会随着互联网的发展和新的域名后缀的增加而不断更新。这个列表是开源的,并由社区维护,确保其时效性和准确性。
总结:

    你不能将cookie的域设置为 .com.cn 或 .eu.org 等公共后缀,因为浏览器会拒绝这种操作。
    PSL 确保了cookie安全,仅允许在实际拥有的域名范围内共享cookie。

你可以通过访问 Public Suffix List(https://publicsuffix.org/) 来查看具体哪些后缀属于公共后缀列表。

个人支付宝接口 发表于 2024-10-22 09:55
浏览器在处理cookie域时,确实内置了“公共后缀列表”(Public Suffix List,简称 PSL),这份列表用于防止 …

感谢解答