- 主页 > 生活百科 > >
通过浏览器打开页面时执行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脚本 改变浏览器“指纹”】
推荐阅读
-
-
群众网国家终于出手了!苹果损失 8.79 亿美元,这或许是限制的第一步!
-
-
-
-
阿巡谈历史|关羽?,古代有的将军画像为何铠甲外再斜披战袍?比如岳飞
-
「东湖樱花」到底是在追什么?,像肖战的这些女粉丝们
-
-
-
八号蒸汽机外形似狗能爬楼能负重,新加坡由机器人当防疫员
-
整点鲜闻|你身边的女性朋友哪些行为让你很反感?谈一次作一次
-
-
「阿眠的一封情书」丈夫愤怒提离婚,如今的我好后悔,婚后将“隐私”透露给丈夫
-
十一假期以来民航旅客运输量相对平稳,7-8日将迎返程高峰
-
-
-
吊带公主裙|40Pro和iPhone 12系列价格曝光,一款涨价,一款持平,疑似MATE
-
养花长不好?捡点松针垫盆底,不黄叶、不烂根,养啥都旺盛!
-
教头|号称八十万禁军教头的林冲,放现在官职多大?听上去也太威风了点
-
道教|道教神话传说中的四座仙山,每一座都是神仙的居住之地!