谷歌宣布,将从 Chrome 81 开始,逐步淘汰 Chrome 浏览器中用户代理字符串的使用。
用户代理字符串(user agent string,简称 “UA 字符串”)是浏览器启动连接时发送到网站的一段文本。它包含了有关浏览器类型、渲染引擎和操作系统等在内的详细信息。例如,Windows 10 上用于 Firefox 的 UA 字符串如下所示:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/72.0
UA 字符串在 90 年代作为 Netscape 浏览器的一部分被开发出来,并且一直沿用至今。根据谷歌的评估,多达 90% 的网站以各种方式阅读和使用浏览器的用户代理。它的最初目的是让服务器确保用户接收到的是针对特定浏览器需求进行过优化的页面。可现如今,用户代理嗅探已成为不少隐私问题的根源,大量广告商已将该字符串用作跟踪和识别网站访问者的方式。
不仅是隐私问题,UA 字符串还带来了其他困扰。前不久,基于 Chromium 的浏览器 Vivaldi 伪造其用户代理字符串以显示成 Chrome,并称原因是要解决一些无法解释的错误,这些错误仅在浏览器被识别为 Vivaldi 时才会发生。
为了解决这些问题,谷歌表示计划通过冻结整个标准来逐步淘汰 UA 字符串在 Chrome 中的重要性。长期来看,谷歌的计划是将所有 Chrome UA 字符串统一为通用值,这些通用值不会透露太多有关用户的具体信息。
谷歌针对当前 UA 字符串的处理步骤是这样的:
- Chrome 81(2020 年 3 月中旬)- 在 Chrome 控制台中针对读取 UA 字符串的网页显示警告,以便开发人员可以调整其网站代码;
- Chrome 83(2020 年 6 月上旬)- 冻结 UA 字符串中的 Chrome 浏览器版本,并统一操作系统版本的通用值;
- Chrome 85(2020 年 9 月中旬)- 统一 UA 桌面操作系统字符串,作为桌面浏览器的通用值;统一使用移动操作系统/设备字符串为通用值。
早在 2017 年,苹果公司就在 Safari 中尝试完全冻结用户代理字符串。但因为过于严格,导致开发人员无法获得需要的信息,于是失败告终。
此次谷歌提出了一个折衷方案,在弃用用户代理字符串之前,Chrome 会引入一项称为“ 用户代理客户端提示”(UA-CH)的新功能,以向网络开发人员提供可能需要的信息,同时尊重用户隐私。去年 8 月,谷歌宣告了“隐私沙箱”计划,旨在开发一套开放标准,从根本上增强网络隐私,新的“客户端提示”机制已在该项目中启动。
目前,Chrome 81 已经在 Canary 阶段,并计划于今年 3 月发布。苹果(Safari)、微软(Edge)和 Mozilla(Firefox)也表示支持这一提议,并很可能在后续陆续采用同样的方式来处理用户代理字符串。