你好,他们可以通过 Worker 采集到所有更改过的指纹值。有人知道如何解决这个问题吗?
import puppeteer from 'rebrowser-puppeteer';
const browser = await puppeteer.launch({
headless: "new"
});
const page = await browser.newPage();
await page.evaluateOnNewDocument(() => {
const utils = {
replaceProperty: (obj, propName, descriptorOverrides = {}) => {
return Object.defineProperty(obj, propName, {
...(Object.getOwnPropertyDescriptor(obj, propName) || {}),
...descriptorOverrides
})
},
replaceGetterWithProxy: (obj, propName, handler) => {
const fn = Object.getOwnPropertyDescriptor(obj, propName).get
const fnStr = fn.toString()
const proxyObj = new Proxy(fn, {
apply: function (target, ctx) {
// Your custom logic here
return "de"
}
})
utils.replaceProperty(obj, propName, { get: proxyObj })
// Optional: Patch toString to make it look native
proxyObj.toString = () => fnStr
return true
}
}
// Replace navigator.languages getter
utils.replaceGetterWithProxy(Object.getPrototypeOf(navigator), 'language', {
apply: function (target, ctx) {
return "de-DE"
}
})
});
await page.goto('https://html-starter2-six.vercel.app/');
await page.screenshot({ path: 'example.png', fullPage: true });