Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当使用来自其他域的图像时,为什么我的导航器会污染画布?_Javascript_Html_Security_Canvas - Fatal编程技术网

Javascript 当使用来自其他域的图像时,为什么我的导航器会污染画布?

Javascript 当使用来自其他域的图像时,为什么我的导航器会污染画布?,javascript,html,security,canvas,Javascript,Html,Security,Canvas,当您将来自其他域的图像放入画布时,画布会受到污染,并且某些函数(如getDataURL或getImageData)会被禁用 当你试图使用这样的函数时,就会发生安全错误 为什么会有这种保护?什么样的攻击使用了这种方法 谢谢 编辑: 我应该问:如何在攻击中使用来自其他域的图像? 我不明白为什么浏览器在被污染后使用画布 这是一种跨域封锁,它类似于您无法从iframe内部的页面访问元素的事实,诸如此类 编辑: 来自w3文档: 请注意,“src”或“data”属性中给定的URL必须处于打开状态 与网页相同

当您将来自其他域的图像放入画布时,画布会受到污染,并且某些函数(如getDataURL或getImageData)会被禁用

当你试图使用这样的函数时,就会发生安全错误

为什么会有这种保护?什么样的攻击使用了这种方法

谢谢

编辑:

我应该问:如何在攻击中使用来自其他域的图像?
我不明白为什么浏览器在被污染后使用画布

这是一种跨域封锁,它类似于您无法从iframe内部的页面访问元素的事实,诸如此类

编辑:

来自w3文档:

请注意,“src”或“data”属性中给定的URL必须处于打开状态 与网页相同的域,并遵循相同的域规则(即。 相同的协议、端口等);不允许跨域对象插入 出于安全原因支持

但我碰到了这个问题,也许你能想出办法:



顺便说一下,java脚本中的跨域可以在较新的浏览器上工作,但您需要拥有这两个域,并配置连接以使其被认为是可信的,请参见此处:


这是一种跨域封锁,类似于您无法从iframe内部的页面访问元素这样的事实

编辑:

来自w3文档:

请注意,“src”或“data”属性中给定的URL必须处于打开状态 与网页相同的域,并遵循相同的域规则(即。 相同的协议、端口等);不允许跨域对象插入 出于安全原因支持

但我碰到了这个问题,也许你能想出办法:



顺便说一下,java脚本中的跨域可以在较新的浏览器上工作,但您需要拥有这两个域,并配置连接以使其被认为是可信的,请参见此处:


未解释原因,但如果您需要解决办法:可能重复:未解释原因,但如果您需要解决办法:可能重复:感谢您的回答,我理解这是由于跨原产地政策造成的。我想知道为什么会有这样的政策?我已经编辑了答案。。。我不知道为什么会有封锁,但封锁已经存在多年了。现在甚至还有iframe显示内容封锁:(尝试在iframe中显示google,你将一无所获。因为我在这里找到了部分答案:这似乎是为了限制网站之间的交互???是的,我不知道为什么这必须在客户端进行,像ApacheHTAccess等基于服务器的限制还不够。我认为这被认为是很简单的。)g如果客户端级别不存在跨域封锁,则可能会滥用其他资源。感谢您的回答,我理解这是由于跨源策略造成的。我想知道为什么会有这样的策略?我已经编辑了答案…我不知道为什么会有封锁,但它已经存在多年了。现在甚至还有iframe显示内容封锁:(尝试在iframe中显示google,你将一无所获。因为我在这里找到了部分答案:这似乎是为了限制网站之间的交互???是的,我不知道为什么这必须在客户端进行,像ApacheHTAccess等基于服务器的限制还不够。我认为这被认为是很简单的。)如果在客户端级别上不存在跨域封锁,则可以滥用其他一些资源。