2

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

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

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

谢谢!

编辑:

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

4

1 回答 1

0

那是跨域封锁,这与您无法从 iframe 内部的页面访问元素类似...

编辑:

从 w3 文档:

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

但是我碰到了这个,也许你可以解决一些问题: 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/

于 2012-09-28T08:58:46.670 回答