谷歌Chrome 136将修复存在20年的已访问链接隐私漏洞
字数 1414 2025-08-29 08:29:41
Chrome 136 已访问链接隐私漏洞修复技术详解
一、背景与问题概述
1.1 历史漏洞
自互联网早期以来,CSS的:visited选择器允许网站对用户已点击的链接进行样式设置(通常变为紫色)。这一设计本意是提升用户体验,但存在严重隐私漏洞:
- 恶意网站可通过检测
:visited样式推断用户访问过的其他网站 - 攻击者可以构建链接列表,通过样式变化确认用户的浏览历史
1.2 现有防护措施的不足
此前浏览器采取的限制措施包括:
- 限制
:visited可应用的CSS属性 - 限制JavaScript访问
:visited链接的样式信息
但这些措施无法从根本上解决问题,攻击者仍能通过精心设计的探测手段获取用户浏览历史。
二、Chrome 136的解决方案:已访问链接分区
2.1 核心技术原理
Chrome 136引入"已访问链接分区"功能,通过以下机制彻底解决该问题:
-
关联存储机制:
- 将链接历史与上下文细节关联存储
- 关联因素包括:
- 链接URL
- 顶级站点(top-level site)
- 框架来源(frame origin)
-
分区显示规则:
- 链接仅在其被点击的站点显示为
:visited状态 - 跨站点时,相同链接将保持未访问样式
- 链接仅在其被点击的站点显示为
2.2 技术实现示例
假设场景:
- 用户在A网站点击访问B网站的链接
- 之后访问恶意网站Evil,该站显示相同B网站链接
传统浏览器行为:
- Evil站可检测到B站链接显示为
:visited状态 - 从而确认用户曾访问过B网站
Chrome 136行为:
- Evil站显示的B站链接保持未访问样式
- 除非用户曾在Evil站内点击过该链接
三、安全性与可用性的平衡设计
3.1 自链接例外机制
为保持站点内导航体验,Chrome设计了特殊例外:
- 允许网站对其子页面链接显示
:visited样式 - 适用条件:
- 链接属于同一站点的子页面
- 无论用户从何种上下文访问过这些页面
示例:
- 浏览Site.Wiki的"黄金"主题页
- 其"铬"和"铜合金"页面的链接若曾被访问过,仍会显示已访问状态
3.2 安全边界
例外机制的严格限制:
- 仅适用于同一站点的直接子页面链接
- 排除所有第三方链接
- 排除iframe框架中的链接
- 网站本身已能追踪子页面访问记录,不会泄露新信息
四、部署与影响
4.1 发布时间线
- 已登陆Chrome Beta测试通道
- 正式版发布时间:2025年4月23日(Chrome 136版本)
4.2 开发者注意事项
- 无需特别适配,功能自动生效
- 如有问题可通过Chromium问题追踪器提交反馈
4.3 用户影响
- 正面影响:
- 浏览历史不再能被跨站探测
- 隐私保护级别显著提升
- 使用体验变化:
- 跨站点的相同链接不再共享
:visited状态 - 站点内部导航体验保持不变
- 跨站点的相同链接不再共享
五、技术意义与行业影响
-
历史性突破:
- 修复存在20余年的基础性隐私漏洞
- 首个实现该防护机制的主流浏览器
-
隐私保护标准提升:
- 为浏览器隐私保护设立新基准
- 可能推动其他浏览器跟进类似解决方案
-
用户体验与安全的平衡:
- 在保持核心导航功能的同时消除隐私风险
- 展示了复杂安全问题的优雅解决方案
六、参考资源
- Chrome官方发布说明
- Chromium项目文档
- Web标准相关讨论(CSS规范更新)
本教学文档全面涵盖了Chrome 136已访问链接隐私修复的核心技术细节、实现原理、设计考量和实际影响,可作为开发者参考或教学使用。