当您将来自其他域的图像放入画布时,画布会被污染,并且某些功能(如 getDataURL 或 getImageData)会被禁用。
当您尝试使用此类功能时,会发生 SECURITY_ERROR 错误。
为什么会有这种保护?什么样的攻击使用了这种方法?
谢谢!
编辑:
我应该问:来自其他域的图像如何用于攻击?我无法弄清楚为什么在被污染后浏览器限制使用画布。
当您将来自其他域的图像放入画布时,画布会被污染,并且某些功能(如 getDataURL 或 getImageData)会被禁用。
当您尝试使用此类功能时,会发生 SECURITY_ERROR 错误。
为什么会有这种保护?什么样的攻击使用了这种方法?
谢谢!
编辑:
我应该问:来自其他域的图像如何用于攻击?我无法弄清楚为什么在被污染后浏览器限制使用画布。
那是跨域封锁,这与您无法从 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/