- 主页 > 生活百科 > >
通过浏览器打开页面时执行js脚本 改变浏览器“指纹”( 二 )
var noisify = function (canvas, context) { if (context) { const shift = { 'r': Math.floor(Math.random() * 10) - 5, 'g': Math.floor(Math.random() * 10) - 5, 'b': Math.floor(Math.random() * 10) - 5, 'a': Math.floor(Math.random() * 10) - 5 const width = canvas.width; const height = canvas.height; if (width && height) { const imageData = https://www.isolves.com/it/cxkf/yy/js/2022-09-21/getImageData.Apply(context, [0, 0, width, height]); for (let i = 0; i < height; i++) { for (let j = 0; j < width; j++) { const n = ((i * (width * 4)) + (j * 4)); imageData.data[n + 0] = imageData.data[n + 0] + shift.r; imageData.data[n + 1] = imageData.data[n + 1] + shift.g; imageData.data[n + 2] = imageData.data[n + 2] + shift.b; imageData.data[n + 3] = imageData.data[n + 3] + shift.a; window.top.postMessage("canvas-fingerprint-defender-alert", '*'); context.putImageData(imageData, 0, 0); Object.defineProperty(HTMLCanvasElement.prototype, "toBlob", { "value": function () { noisify(this, this.getContext("2d")); return toBlob.apply(this, arguments); Object.defineProperty(HTMLCanvasElement.prototype, "toDataURL", { "value": function () { noisify(this, this.getContext("2d")); return toDataURL.apply(this, arguments); Object.defineProperty(CanvasRenderingContext2D.prototype, "getImageData", { "value": function () { noisify(this.canvas, this); return getImageData.apply(this, arguments); document.documentElement.dataset.cbscriptallow = true; inject();【通过浏览器打开页面时执行js脚本 改变浏览器“指纹”】
推荐阅读
-
-
【机智Phone云】摄影师体验Find X2 Pro的直出照片,网友:最美春天!
-
-
|峰米玩真的!“超大杯”视觉盛宴,ALPD技术,科技博主:完美
-
央广网 「2020·指尖城市」重庆江北:大数据助力城市管理智能化
-
-
晓正谈历史|为何恭敬磕头立马撤退?隐千年轶事,日军进村庄扫荡看到一石碑
-
-
东北网|哥哥无证驾驶被罚,双胞胎弟弟揣着假证来救场
-
大江网|江西省实现A股上市公司设区市“全覆盖”,晨光新材登陆上交所主板
-
-
行业|原创上市不足1周股价就翻倍,解密贝壳找房的“鼠标+水泥”
-
AG|沫子终于变“红”了!秘诀居然是多发照片?玩家:多发性感的更红
-
湖人队|3年1900万!湖人续约隆多,拒快船千万年薪,享受围绕詹姆斯打球!
-
-
-
公孙离|谁可以把马可和公孙离打的怀疑人生?可能只有被嫌弃的他
-
-
北晚新视觉网|利比亚最大油田再度停产,遭武装组织袭击
-