browser-canvas-fingerprinting
Version:
A simple canvas fingerprinting implementation in browser with specific information used to generate fingerprint
17 lines (15 loc) • 778 B
JavaScript
export const extensionBlocked = { value: false };
// install hook
CanvasRenderingContext2D.prototype.putImageData = new Proxy(CanvasRenderingContext2D.prototype.putImageData, {
apply(target, self, args) {
if (extensionBlocked.value) return undefined; // reference: https://developer.mozilla.org/zh-CN/docs/Web/API/CanvasRenderingContext2D/putImageData
return Reflect.apply(target, self, args);
}
});
// OffscreenCanvasRenderingContext2D.prototype.putImageData 是继承的,不需要再次hook
Math.random = new Proxy(Math.random, {
apply(target, self, args) {
if (extensionBlocked.value) return 0.99;
return Reflect.apply(target, self, args);
}
}); // 直接搞你的数据源,我就不信你换用 crypto.getRandomValues :)