1

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

这是对我的先例问题之一的重新表述:我的先例问题之一

出于安全原因,浏览器将在使用来自其他域的图像后限制画布上某些功能的使用。

这是什么安全原因?画布中的图像显示如何存在风险?

4

2 回答 2

2

我为此写了一篇名为“了解 HTML5 画布图像安全规则”的帖子

简短的版本是,如果允许画布将本地文件绘制到自身,那么它可能会绘制位于本地驱动器(对您私有)或仅对您可见的私有站点(internal.myWebsite.com)上的文件,获取其 imageData,然后将该文件上传到服务器,有效地窃取图像。我们不能这样,所以“本地文件和跨域文件破坏原始干净”规则已经到位。

如果您拥有一个网站并希望能够以跨源方式使用图像,则需要启用 CORS

于 2012-09-28T16:54:06.900 回答
1

这是一个疯狂的例子,但希望你明白:

假设您有一个在线购物网站,在用户个人资料页面中,您展示了一张漂亮的信用卡图片(创建的画布),上面有信用卡的最后四个数字,当用户点击它时,他们可以更改他们的信用卡详细信息(号码、日期等)。没关系。

现在想象一下,通过任何方式,例如 XSS 漏洞或 sql 注入或其他任何方式,破解者都可以更改加载画布图像的链接,使其指向攻击者服务器中的画布图像。

破解者发送的画布图像与原始网站相同,但末尾有不同的最后四个数字,以及一个链接,上面写着“如果这不是您的信用卡,请单击此处进行更改”

当用户点击该链接进入破解者的钓鱼网页时,该网页会重新同步原始的“更改卡数据详细信息”页面,但当用户输入他的信用卡详细信息时,它们将被保存在攻击者服务器上,然后重定向回原始页面网站。

于 2012-09-28T16:18:53.207 回答