如何使用用户脚本欺骗我的 userAgent?

Swa*_*gie 3 javascript user-agent detection spoofing userscripts

我正在尝试访问一个网站,但它不允许我这样做,因为它不支持我的浏览器。我相信它正在通过 userAgent 检测来检测我的浏览器。因此,我想创建一个 userScript 来修改我的 userAgent,以便网站无法检测到我的浏览器。我试过:

// ==UserScript==
// @name         Change UserAgent
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Spoofs the userAgent
// @author       You
// @include      *
// @run-at       document-start
// ==/UserScript==

Object.defineProperty(navigator, 'userAgent', {
  value: "MyCustomUserAgent",
  configurable: false
});
Run Code Online (Sandbox Code Playgroud)

尽管它向我表明 userAgent 是一个自定义值,但我相信对 userAgent 的请求在我可以欺骗它之前就已完成。有什么方法可以在不使用扩展的情况下做到这一点?谢谢。

ero*_*man 6

用户脚本在初始 HTTP/s 连接建立并且页面即将加载后加载。

此时,服务器已经收到用户代理数据。因此,用户脚本无法欺骗服务器。

附加组件可以拦截并改变浏览器和服务器之间的初始通信,从而欺骗用户代理。

使用自己服务器的网站(例如 Google、Yahoo、Facebook 等)可以访问其服务器,因此通过用户脚本进行欺骗的可能性较小(取决于其他因素)。

在商业服务器上运行的网站可能无法访问上述服务器数据,并且必须使用 JavaScript 来获取用户代理,因此存在欺骗用户代理的可能性。

类似地,使用稍后执行的页面 JavaScript(例如,在单击某些内容时)来获取当时的用户代理的网站可以通过用户脚本进行欺骗。