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

时间:2012-09-28 08:53:03

标签: javascript html5 security canvas

当您从画布中的其他域放置图像时,画布会被污染,并且某些函数(如getDataURL或getImageData)将被禁用。

当您尝试使用此类功能时,会发生SECURITY_ERROR错误。

为什么要保护这个?什么样的攻击使用这种方法?

谢谢!

编辑:

我应该问:如何在攻击中使用来自其他域的图像?    我无法弄清楚为什么浏览器限制使用后的画布受到污染。

1 个答案:

答案 0 :(得分:0)

这是一个跨域封锁,事实上您无法访问iframe内部页面中的元素等等......

编辑:

来自w3文档:

  

请注意,'src'或'data'属性中指定的URL必须为on   与网页相同的域并遵循相同的域规则(即   相同的协议,端口等);跨域对象插入不是   出于安全原因支持。

但我碰到了这个,也许你可以解决一些问题:
http://dev.w3.org/SVG/tools/svgweb/docs/UserManual.html#cross_domain


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

http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/