news 2026/8/27 16:29:39

Cookie 为什么不能跨 .github.io 共享?5 分钟看懂 Public Suffix List

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cookie 为什么不能跨 .github.io 共享?5 分钟看懂 Public Suffix List

Cookie 为什么不能跨 .github.io 共享?5 分钟看懂 Public Suffix List

【免费下载链接】listThe Public Suffix List项目地址: https://gitcode.com/gh_mirrors/li/list

为什么 a.github.io 和 b.github.io 两个站点不能共享 Cookie?浏览器靠一份叫 Public Suffix List(PSL,公共后缀列表)的文件来识别“域名边界”。它列出所有可直接注册的公共后缀,是浏览器 Cookie 隔离与域名解析的依据。

到底什么是“公共后缀”

公共后缀,就是用户能(或历史上能)直接在其下面注册名字的域名:com、co.uk、pvt.k12.ma.us 都算。其中 ccTLD(国家/地区顶级域名,例如 .cn)是很常见的一类,不少 ccTLD 下面还有一级可注册的二级分区,比如 co.uk。

浏览器处理 Cookie 时,以公共后缀为界:界之上是“公共基础设施”,界之下才算“你的地盘”。所以 a.github.io 与 b.github.io 属于两个不同域名,Cookie 天然不互通。没有这份列表,任何服务都可以往整个 .io 下写 Cookie,网络环境会直接失控。

列表里装了什么:ICANN 官方与私有域名后缀双轨结构

打开仓库核心文件 public_suffix_list.dat,会发现整份列表分成泾渭分明的两块:

  • ICANN DOMAINS:由 ICANN(全球域名体系治理机构)维护的官方后缀,包括 .com、.org 这类传统 gTLD,.cn、.uk 这类国家/地区顶级域名,以及 .app、.blog 这类新 gTLD
  • PRIVATE DOMAINS:由企业或组织自行登记的私有后缀,例如 github.io、blogspot.com,也就是常说的“私有域名后缀”

两部分由===BEGIN ICANN DOMAINS======BEGIN PRIVATE DOMAINS===标记分隔,整个文件超过一万六千行。这种“官方 + 私有”的双轨设计兼顾权威与灵活:官方部分可回溯权威来源,私有部分让各平台自行管理子域名边界。

它如何保持准确:同步、校验与测试工具链 🔧

一份上万行的列表不可能靠人工核对。仓库内置了完整的自动化流水线:

  • 数据同步:tools/newgtlds.go 定期从 ICANN 官方 gTLD 注册表(JSON 格式)和 IANA 的 TLD 清单(TXT 格式)拉取最新顶级域名数据,自动更新列表中的新 gTLD 区段
  • 语法校验:linter/pslint.py 逐行检查格式、通配符语法(*)、例外条目(!)与排序规则,有问题会按行报出警告和错误
  • 测试验证:tests/test_psl.js 等测试套件验证列表解析结果,Makefile 把语法检查与规则测试串成一条完整流程

每次变更都有提交记录可查,谁改了什么、为什么改、经过什么校验,全部可追溯。

谁在用它:从浏览器 Cookie 隔离到反钓鱼 🔒

  1. 浏览器安全:浏览器通过 libpsl 库加载列表判断域名边界,防止跨域 Cookie 注入
  2. 邮件与反钓鱼:识别恶意域名时,公共后缀帮助定位“真实域名”,不被子域名伪装迷惑
  3. 企业 IT 管理:tools/private_domains_checker/ 下的工具可校验私有后缀申请的合规性
  4. 域名解析优化:各类域名解析库都以它作为统一边界依据,提升解析的一致性与准确性

一键拉取并校验列表

两步即可在本地跑通完整验证:

git clone https://gitcode.com/gh_mirrors/li/list cd list && make test

make test 先跑 linter 语法检查,再用 libpsl 校验列表规则;全部通过,说明你手上的列表干净且完整。实际集成时,直接引用仓库里的 public_suffix_list.dat,并从这里定期拉取更新即可。

【免费下载链接】listThe Public Suffix List项目地址: https://gitcode.com/gh_mirrors/li/list

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 16:27:57

手把手Zephyr开发环境:五步跑通第一个demo

手把手Zephyr开发环境:五步跑通第一个demo 【免费下载链接】zephyr-cn zephyr-cn is a collection of original work of SIG-Zephyr 项目地址: https://gitcode.com/openeuler/zephyr-cn 在 Windows 上跑 Zephyr,常常卡在交叉工具链和 Linux 依赖…

作者头像 李华
网站建设 2026/8/27 16:22:15

107、采用框架(Modification Adjustment)

107、采用框架(Modification Adjustment) 那是一个周五下午,客户升级了ERP系统,业务那边急着测试,结果一上来就报错——自开发的报表突然读不到某个标准结构字段了。我第一反应是数据字典没激活,但SE14一看,结构明明在。再仔细一看,程序里那个字段直接被注释掉了,下面…

作者头像 李华
网站建设 2026/8/27 16:21:42

如何上手 OpenCut:开源视频编辑器本地跑通的 10 分钟完整路径

如何上手 OpenCut:开源视频编辑器本地跑通的 10 分钟完整路径 【免费下载链接】OpenCut The open-source CapCut alternative 项目地址: https://gitcode.com/GitHub_Trending/ap/OpenCut OpenCut 是一款免费、开源(MIT 协议)的视频编…

作者头像 李华
网站建设 2026/8/27 16:19:05

音频语音视频一体化IoT系统:端边云协同架构与工程实践

先把结论放这儿:这篇文章不是讲某个单一音箱或摄像头方案,而是聊一个我最近半年一直在折腾的完整项目——把音频采集、语音交互、视频传输三条链路,统一塞进一套IoT设备体系里,端侧、边缘侧、云端三层各干各的事,最后通…

作者头像 李华