谷歌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引入"已访问链接分区"功能,通过以下机制彻底解决该问题:

  1. 关联存储机制

    • 将链接历史与上下文细节关联存储
    • 关联因素包括:
      • 链接URL
      • 顶级站点(top-level site)
      • 框架来源(frame origin)
  2. 分区显示规则

    • 链接仅在其被点击的站点显示为:visited状态
    • 跨站点时,相同链接将保持未访问样式

2.2 技术实现示例

假设场景:

  1. 用户在A网站点击访问B网站的链接
  2. 之后访问恶意网站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状态
    • 站点内部导航体验保持不变

五、技术意义与行业影响

  1. 历史性突破

    • 修复存在20余年的基础性隐私漏洞
    • 首个实现该防护机制的主流浏览器
  2. 隐私保护标准提升

    • 为浏览器隐私保护设立新基准
    • 可能推动其他浏览器跟进类似解决方案
  3. 用户体验与安全的平衡

    • 在保持核心导航功能的同时消除隐私风险
    • 展示了复杂安全问题的优雅解决方案

六、参考资源

  • Chrome官方发布说明
  • Chromium项目文档
  • Web标准相关讨论(CSS规范更新)

本教学文档全面涵盖了Chrome 136已访问链接隐私修复的核心技术细节、实现原理、设计考量和实际影响,可作为开发者参考或教学使用。

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已访问链接隐私修复的核心技术细节、实现原理、设计考量和实际影响,可作为开发者参考或教学使用。