Webkit 中,通过 document.domain,可以将 domain 设置到最后一级(最后一个点之后的内容)。由于域名最后实际上有一个 .(例如https://imququ.com. 可以正常访问), 所以甚至可以将document.domain 设置为空字符串。
根据 HTML5 文档的描述:在 JavaScript 中通过 document.domain 设置当前页面的 domain 时,如果新值不等于当前值,也不是 IPv4 和 IPv6 格式时,需要判断新值是否在 PSL(Public Suffix List,公共后缀列表)中,如果存在必须抛出 SecurityError,终止后续流程。
PSL 是由 Mozilla 创建的公共资源,官网是 publicsuffix.org。它由两部分组成:一部分是由 ICANN(The Internet Corporation for Assigned Names and Numbers,互联网名称与数字地址分配机构)提供的 TLD(Top Level Domain,顶级域名)列表;一部分是由个人或机构提供的 PRIVATE 列表。完整的 PSL 可以从这个地址获得。
ICANN 维护的 TLD 列表好理解,例如最常见的 com、net、org 等等都属于这个列表。为大家所熟知的 TLD 最多也就几十个,那么完整的 TLD 列表包含多少记录呢?我统计了一下,截至到当前:
TLD 列表中一共有 7247 条记录;
最长的记录有 35 个字符,例如:posts-and-telecommunications.museum;
级别最多的记录有 4 级,例如:pvt.k12.ma.us;
PRIVATE 列表由个人或机构自行添加。例如我想把 imququ.com 的二级域名开放给其它人使用,同时还想让这些二级域名之间相互隔离,我可以申请在 PRIVATE 列表中加上 imququ.com。目前在 PRIVATE 列表中,有很多都是 Amazon Web Services 添加的,目的就是为了隔离用户。
现在很多提供 App Engine 服务的厂商一般都会给用户提供二级域名,例如 example.duapp.com,这会带来很大的安全隐患:假如用户将 document.domain 设置为大域;或者在设置 cookie 时指定 domain 为大域,都会导致网站完全暴露给其它二级域名用户。那如果用户在使用过程中避免了这些问题,是不是就高枕无忧了呢?也不是!其它用户如果在大域写入大量 Cookie,一样可以对你的二级域名造成拒绝服务攻击,想了解细节的同学请看这篇文章:超大 Cookie 拒绝服务攻击。
这也是为什么亚马逊要把那么多 AWS 域名都加到 PSL 的 PRIVATE 列表中的原因。国内的服务商,我看到 Sina 的 SAE 也做了相关处理,这一点上 SAE 确实比较细致。
目前 PSL 中的 PRIVATE 记录统计如下:
PRIVATE 列表一共有 557 条记录;
最长的记录有 36 个字符,例如:ap-northeast-1.compute.amazonaws.com;
级别最多的记录有 5 级,例如:s3.cn-north-1.amazonaws.com.cn;
二者加起来,完整的 PSL 一共有 7804 条记录。
PSL 做为公共资源,可以被用在很多场景上,例如 Firefox 用它在地址栏高亮 URL 的关键部分。PSL 更重要的用途是用在浏览器同源策略上:例如通过 document.cookie 设置 cookie,或者通过 document.domain 设置当前 domain,都不允许将 domain 设置为 PSL 中的记录。
Webkit 一直以来只在设置 cookie 时使用了 PSL,前面提到的 Chrome 的那个 Bug 纯属从 Webkit 继承而来。大约在两年前(详情),Chrome 解决了这个问题。以下分别是用最新的 Chrome、Firefox 以及 Microsoft Edge 的测试结果:
然而,Safari 至今为止依然没有修复这个问题,以下是在最新的 Safari 中的测试结果:
好文章,需要你的鼓励
邻里社交应用Nextdoor推出重新设计版本,新增本地新闻、实时警报和名为"Faves"的AI功能,用于发现本地商户和地点。该应用与3500家本地出版商合作提供新闻内容,通过Samdesk和Weather.com提供天气、交通、停电等实时警报。Faves功能利用15年邻里对话数据训练的大语言模型,为用户提供本地化AI推荐服务,帮助用户找到最佳餐厅、徒步地点等本地信息。
Skywork AI推出的第二代多模态推理模型R1V2,通过创新的混合强化学习方法,成功解决了AI"慢思考"策略在视觉推理中的挑战。该模型在保持强大推理能力的同时有效控制视觉幻觉,在多项权威测试中超越同类开源模型,某些指标甚至媲美商业产品,为开源AI发展树立了新标杆。
英国生物银行完成了世界上最大规模的全身成像项目,收集了10万名志愿者的超过10亿次扫描数据,用于研究人体衰老和疾病过程。该项目历时11年,每次扫描耗时5小时,投资6200万英镑。目前已有8万人的成像数据供全球研究人员使用,剩余数据将于年底前发布。项目已开发出能预测38种常见疾病的AI工具,并在心脏病、痴呆症和癌症诊断方面取得突破。
这项由北京大学等多所高校联合完成的研究,首次对OpenAI GPT-4o的图像生成能力进行了全面评估。研究团队设计了名为GPT-ImgEval的综合测试体系,从文本转图像、图像编辑和知识驱动创作三个维度评估GPT-4o,发现其在所有测试中都显著超越现有方法。研究还通过技术分析推断GPT-4o采用了自回归与扩散相结合的混合架构,并发现其生成图像仍可被现有检测工具有效识别,为AI图像生成领域提供了重要的评估基准和技术洞察。