/2/2.104.0/main.js (fingerprinting)

Here you should report unblocked ads, trackers, social media items, annoyances or leftovers from blocked content.
Post Reply
Shri333
New Member
New Member
Posts: 7
Joined: Tue Jan 16, 2024 3:38 pm

/2/2.104.0/main.js (fingerprinting)

Post by Shri333 »

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
Shri333
New Member
New Member
Posts: 7
Joined: Tue Jan 16, 2024 3:38 pm

Post by Shri333 »

This rule looks incorrect? does /2.120.0/main.js match https://s.*.com/2/2.104.0/main.js?

Post Reply