Chrome:听说你们滥用 UA? 废了它!
The following article is from code秘密花园 Author ConardLi
User-Agent
可能是我们最常用到的 HTTP
请求头之一了,我们可以在里面取到很多有用的信息,比如浏览器版本、设备信息等等。
一般我们标识一个用户的身份时一般会去取里面的信息。另外排查问题的时候读取一些环境信息也很方便。
但是,由于它里面包含的信息太有用了,已经开始被滥用了。为了减轻 User-Agent
的身份标识作用, Chrome
正在逐步减少 User-Agent
中的信息。
如果你的业务里有用到,你可能得检查检查代码了... 因为你可能取不到你想要的信息了。
对我们意味着啥
以下几部分信息都会逐步缩减:
User-Agent HTTP 请求标头 Javascript navigator.userAgentgetter Javascript navigator.platformgetter Javascript navigator.appVersiongetter
浏览器会推荐大家使用新的 User-Agent Client
,里面只会包括下面几部分信息:
Sec-CH-UA
: 浏览器名称和主要/重要版本Sec-CH-UA-Mobile
: 是否为移动设备Sec-CH-UA-Platform
: 操作系统名称
例如,Chrome/99.0.2345.12
这样的版本号将会被简化为 Chrome/99.0.0.0
,这大大的减轻了 UA 对用户的身份标识作用。
具体减少计划
Chrome 92
:使用 navigator.userAgent 、navigator.appVersion
和 navigator.platform
会在控制台打印警告。
Chrome 95
:支持为的网站注册原始试用,开始对减少的 UA 字符串进行测试和反馈。
Chrome 101
:User-Agent
将会减少 Chrome MINOR.BUILD.PATCH
版本信息。推荐迁移到新的 User-Agent Client
。
Chrome 107
:PC端的 User-Agent
字符串和 JS API
(navigator.userAgent 、navigator.appVersion 、navigator.platform
)将会直接缩减。
Chrome 110
:移动端的的 User-Agent
字符串和 JS API
将会缩减。
Chrome 113
:全面缩减。
最后
这个改动之后,一部分基于 UA 做身份标识的库和业务将会受到很大影响,大家提前注意一下。
觉得本文对你有帮助?请分享给更多人
关注「大前端技术之路」加星标,提升前端技能
点赞和在看就是最大的支持❤️