此前谷歌浏览器已经预告过将会取消已沿用多年的用户代理字符串,原因是这些字符串可能泄露用户的隐私信息。
代理字符串包含系统版本、体系架构、浏览器版本和体系架构等信息,部分广告网络会利用这些信息来追踪用户。
因此谷歌决定彻底取消用户代理字符串只保留浏览器名称,后续广告网络也只能知道用户是使用谷歌浏览器访问。
![293f0da8acb0b89fc5fc2319ebefbbbb.png](https://i-blog.csdnimg.cn/blog_migrate/4a598ec9ebe7b3d3c26be0528fdf8b6f.jpeg)
弃用用户代理字符串开始初步部署:
目前在谷歌浏览器金丝雀版中谷歌已经增加新的实验功能,该功能开启后浏览器版本会被重置为谷歌浏览器V75。
也就是各种追踪脚本不能再获得谷歌浏览器的准确版本,当然这只是开始因为后续其他信息也会被谷歌彻底抹除。
用户可以开启该实验选项进行测试 :chrome://flags/#freeze-user-agent 将选项设置为Enabled后重启浏览器。
重启浏览器后转到chrome://version即可看到UA标识符变成75版,当然浏览器实际版本是V81.0.4039.0测试版。
#正常情况下的用户代理字符串Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.04039.0 Safari/537.36#此次调整后的用户代理字符串Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3764.0 Safari/537.36#以后大概会变成这样Mozilla/5.0 Chrome
蓝点网此前消息:
按谷歌说明该公司的最终目的是阻止所有网站或服务识别用户使用的操作系统、浏览器版本、具体的设备型号等。
最终结果是谷歌浏览器只会给网站发送用户代理字符串片段,此片段不能用于识别是电脑还是手机以及其版本等。
而网站及其服务器也只能通过代理字符串片段知晓用户使用的是谷歌浏览器,而其他方面的任何信息都不再提供。
按谷歌设想这种做法有助于提供用户的隐私信息保护,同时还可避免更多网站针对不同浏览器制定不同兼容方案。
关于UA字符串的线路图:
1.从2020年3月中旬发布的Chrome v81开始,谷歌将在开发者控制台里为读取UA信息的网页显示特定警告内容。
2.从2020年6月上旬发布的Chrome v83开始,谷歌不再提供UA类的浏览器版本及具体的操作系统版本号信息等。
3.从2020年9月中旬发布的Chrome v85开始,谷歌将把UA中的操作系统设定为通用值来阻止识别电脑还是手机。
颤抖吧!各种网站和服务:
谷歌浏览器这次调整预计将会影响非常多的网站和服务,因为许多网站和服务依靠用户代理字符串返回特定信息。
说个最简单最常见的例子:有些网站不是基于HTML5开发而是有单独的电脑版和手机版,靠UA来返回特定版本。
例如当用户使用手机访问时则会自动跳转到手机版上以方便用户阅读,而这次谷歌调整会彻底毁掉这种工作方式。
再举个非常常见的例子:当使用手机访问某些APP的下载页面时,会读取UA来判断用户是iOS设备还是安卓设备。
如果是iOS设备则自动跳转到AppStore,如果是安卓设备则跳转到Google Play或者直接自动下载APK安装包等。
同理网站无法读取用户使用的操作系统和设备类型后,也无法进行跳转所以这种比较方便的解决方案也不再奏效。
影响不算特别大但需要去改:
从上面两个例子中我们可以看到许多网站服务对代理字符串依赖度非常高,无法进行读取识别可能产生各种问题。
当然使用替代方案也并不是不能解决这个问题,只是全球可能有千万级别的网站或服务都靠这种简单的工作方式。
所以当谷歌决定淘汰传统的用户代理字符串时这些网站必须去改,去重新开发替代性的解决方案来解决这个问题。
目前尚不清楚其他主流浏览器是否会跟进此事,但谷歌浏览器的市场占有率也足以让绝大多数网站开始进行调整。