Ublock origin阻止我的JS脚本加载



我使用FingerprintJS为我的js客户端生成一个唯一的Id。我没有问题,直到今天,当我刚刚注意到ublock (google chrome)现在正在阻止脚本:

const fpPromise = import('https://openfpcdn.io/fingerprintjs/v3')
.then(FingerprintJS => FingerprintJS.load())
fpPromise
.then(fp => fp.get())
.then(result => {
visitorId = result.visitorId
})
})

Uncaught (in promise) TypeError: Failed to fetch dynamically imported module: https://openfpcdn.io/fingerprintjs/v3

我没有问题其他浏览器(Firefox、safari等)。

是否有任何解决方案,让我得到这个脚本的工作,而不被阻止的ublock或任何其他adblocker ?

规避广告拦截器

某些广告拦截器可能会因为已知的CDN URL或脚本名称而检测并阻止此库。为了避免特定的检测,需要检查应用的规则。这里有一些通用的选项可以避免这种行为。

开源替代

  • 为开源的FingerprintJS使用NPM安装选项
  • 不太受欢迎的方法是在您自己的域中自托管脚本。它会让你的脚本很快过时,并且会在未来发布的新浏览器上停止工作。此外,确保脚本的URL不以/fingerprint.js结尾,否则它将被阻止。您可以在以下url上找到脚本(您可以将版本替换为特定版本,例如使用v3.3.3)。
    • ES模块下载网址:https://openfpcdn.io/fingerprintjs/v3/esm.min.js.
    • UMD下载网址:https://openfpcdn.io/fingerprintjs/v3/umd.min.js.

商业选择

  • 使用FingerprintJS Pro的免费层,它允许每月进行多达20K次识别事件。该选项支持CDN和NPM安装选项,以及一个自定义子域,将阻止广告拦截器拦截。
  • 使用FingerprintJS Pro的付费层,它允许每个月无限制地进行识别事件。此选项支持CDN和NPM安装选项以及自定义子域功能。

src: https://github.com/fingerprintjs/fingerprintjs/blob/e7dd670b8e6f9bcbdaee5231158f8c31d79e4b1e/docs/bypass_ad_blockers.md

最新更新