我知道使用户代理提示更加模棱两可,部分目的是使浏览器指纹识别更加困难。
我自己的(Windows 桌面)Chrome 发送标题:
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36
sec-ch-ua: "Chromium";v="86", "\"Not\\A;Brand";v="99", "Google Chrome";v="86"
sec-ch-ua-mobile: ?0
我不明白的是:
- 为什么要专门使用字符串“Not A Brand”?还有其他人使用这个伪UA吗?这是某种玩笑吗?
- 为什么字符串里面有
\"
and ?\\A;
我唯一的猜测是,这应该会以某种方式与解析器混淆(就像 CSS 中的反 IE hacks),但这似乎是一个相当奇怪的目的——而 IIRC\A
是铃铛字符。 - 鉴于它还发送
user-agent
具有特定版本号的完整标头,这应该如何实现用户代理提示歧义? - 在此期间:为什么 Chrome 的用户代理也声称是 Mozilla、AppleWebKit 和 Safari?不是,而且这个
user-agent
字符串明显是 Chrome 的。它是否具有来自其他浏览器的某种嵌入式组件?