We found another cluster of scripts that are fingerprinting. Is it possible to add a rule to catch these or would a rule like /2/2.104.0/main.js
be too evadable or specific?
Code: Select all
https://s.adsrvs.com/2/2.104.0/main.js
https://s.rtyche.com/2/2.104.0/main.js
https://s.bokolr.com/2/2.104.0/main.js
https://s.hoplon.pandora.com/2/2.104.0/main.js
https://s.gk.123greetings.com/2/2.104.0/main.js
https://s.fs.genieegroup.com/2/2.104.0/main.js
Evidence of fingerprinting with navigator.userAgent:
Code: Select all
t.prototype.cJ = function() {
return u.dB(this.By.safari) || (this.By.safari = navigator.userAgent.indexOf("Safari") > -1 && this.SK() && navigator.vendor.indexOf("Apple") > -1), this.By.safari
}, t.prototype.QX = function() {
return u.dB(this.By.firefox) || (this.By.firefox = navigator.userAgent.indexOf("Firefox") > -1 && this.Mb()), this.By.firefox
}, t.prototype.Wb = function() {
return u.dB(this.By.firefoxIos) || (this.By.firefoxIos = navigator.userAgent.indexOf("FxiOS") > -1 && navigator.userAgent.indexOf("Gecko") > -1), this.By.firefoxIos
}, t.prototype.ay = function() {
if (!u.dB(this.By.firefoxMobile)) {
var t = navigator.userAgent.match(/mobi|tablet/i);
this.By.firefoxMobile = t && navigator.userAgent.indexOf("Gecko") > -1, this.By.firefoxMobile = navigator.userAgent.indexOf("FxiOS") > -1 && navigator.userAgent.indexOf("Gecko") > -1
}
return this.By.firefoxMobile
}, t.prototype.YZ = function() {
return u.dB(this.By.chrome) || (this.By.chrome = void 0 !== window.chrome && "Opera Software ASA" != navigator.vendor && void 0 === navigator.msLaunchUri && this.SK()), this.By.chrome
}, t.prototype.hJ = function() {
if (!u.dB(this.By.blink)) {
var t = document.createElement("input");
t.type = "week", this.By.blink = "week" === t.type && !("mozInnerScreenX" in window) && !("ApplePayError" in window)
}
return this.By.blink
}, t.prototype.KG = function() {
return u.dB(this.By.qq) || (this.By.qq = "qb_external" in window || "qb_minivideo" in window), this.By.qq
}, t.prototype.Hr = function() {
return u.dB(this.By.edge) || (this.By.edge = void 0 !== window.chrome && void 0 !== navigator.msLaunchUri && void 0 === window.ActiveXObject && this.Ld()), this.By.edge
}, t.prototype.NN = function() {
return u.dB(this.By.brave) || (this.By.brave = !(!window.navigator.brave || "function" != typeof window.navigator.brave.isBrave)), this.By.brave
}, t.prototype.HP = function() {
return !(!this.Ld() || window.external && "undefined" != typeof window.external.AddSearchProvider && "undefined" == typeof window.external._x_yyzz)
}, t.prototype.Gb = function() {
return u.dB(this.By.webOc) || (this.By.webOc = this.HP()), this.By.webOc
}, t.prototype.Yq = function() {
return u.dB(this.By.win8) || (this.By.win8 = null != window.MSGesture && this.Ld()), this.By.win8
}, t.prototype.Bg = function() {
return u.dB(this.By.ios) || (this.By.ios = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream), this.By.ios
}, t.prototype.fm = function() {
if (!u.dB(this.By.iosWebviewType) && this.tG()) {
var t = navigator.userAgent,
e = /constructor/i.test(window.HTMLElement),
n = !!window.indexedDB,
o = window.webkit,
r = o ? o.messageHandlers : void 0; - 1 !== t.indexOf("Safari") && -1 !== t.indexOf("Version") ? this.By.iosWebviewType = "sf" : !n && e || !window.statusbar.visible ? this.By.iosWebviewType = "ui" : this.By.iosWebviewType = o && r || !e || n ? "wk" : null
}
return this.By.iosWebviewType
}, t.prototype.tG = function() {
if (!u.dB(this.By.iosWebview)) {
var t = navigator.userAgent;
this.By.iosWebview = !1, -1 === t.indexOf("CrioOS") && this.Bg() && !this.Wb() && (this.By.iosWebview = !0)
}
return this.By.iosWebview
}, t.prototype.JY = function() {
return u.dB(this.By.androidOs) || (this.By.androidOs = navigator.userAgent.indexOf("Android") > -1), this.By.androidOs
}, t.prototype.PA = function() {
return u.dB(this.By.mobile) || (this.By.mobile = "orientation" in window || this.Ld() && !("prompt" in window) || this.ay() && "ontouchstart" in document.documentElement || "operamini" in window || "operamini_searchEnginesPrivate" in window || this.Eo() && "renderingMode" in window.opera && !("getUserMedia" in navigator)), this.By.mobile
}, t.prototype.vm = function() {
return u.dB(this.By.webview) || (!this.JY() || navigator.userAgent.match(/Firefox|MxBrowser|UCBrowser|OPR|Opera/) || void 0 !== window.dolphin ? this.By.webview = !1 : this.By.webview = !u.dB(window.webkitRequestFileSystem)), this.By.webview
}, t.prototype.vs = function() {
return u.dB(this.By.opera) || (this.By.opera = this.SK() && "object" == typeof window.onoperadetachedviewchange || -1 !== navigator.userAgent.indexOf("Opera") || -1 !== navigator.userAgent.indexOf("OPR")), this.By.opera