我正在尝试开发一个可以保护人们免受浏览器指纹识别的Web扩展,而我目前正在使用canvas API。我需要“欺骗”或“伪造”从以下方法返回的图像数据,以防止canvas fingerprinting:
HTMLCanvasElement.toDataURL() - toDataURL() Documentation
HTMLCanvasElement.toBlob() - toBlob() Documentation
CanvasRenderingContext2D.getImageData() - getImageData() Documentation
可能更多......但是让我们从这些开始吧。我正在使用javascript原型来覆盖方法。 toDataURL()返回一个假的输出,但是很好的toBlob()和getImageData()都返回相同的值,这也是真正的输出,而不是我想要的:(
存储库位于github。
此canvas.js文件包含我的代码,该代码尝试将1加到RGBA格式的数组中的每个字节。是的,我知道这很糟糕,仅用于测试。我将使用随机数作为真实的东西,但目前我只是想让它返回一个与默认值不同的值,以便像素数据或图像数据的散列不同。
任何想法???如果您需要其他信息或不理解某些事情,请询问我或告诉我。谢谢......