谷歌宣布,将从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)也表示支持这一提议,并很可能在后续陆续采用同样的方式来处理用户代理字符串。