Javascript 为什么浏览器会限制画布中来自其他域的图像的使用?

Javascript 为什么浏览器会限制画布中来自其他域的图像的使用?,javascript,html,security,canvas,Javascript,Html,Security,Canvas,可能重复: 这是对我的一个先例问题的重新表述: 出于安全原因,浏览器将在使用其他域的图像后限制画布上某些功能的使用 这是什么安全原因?画布上的图像怎么会显示风险?这是一个疯狂的例子,但希望你能理解: 假设你有一个在线购物网站,在用户档案页面中,你展示了一张漂亮的信用卡图片(画布创建),上面有信用卡的最后四个号码,当用户点击它时,他们可以更改信用卡的详细信息(号码、日期等)。那很好 现在想象一下,通过任何方式,例如XSS漏洞、sql注入或其他方式,黑客可以更改加载画布图像的链接,使其指向攻击者服

可能重复:

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

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


这是什么安全原因?画布上的图像怎么会显示风险?

这是一个疯狂的例子,但希望你能理解:

假设你有一个在线购物网站,在用户档案页面中,你展示了一张漂亮的信用卡图片(画布创建),上面有信用卡的最后四个号码,当用户点击它时,他们可以更改信用卡的详细信息(号码、日期等)。那很好

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

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


当用户点击该链接时,会转到黑客的钓鱼网页,该网页会重新编码原始的“更改卡数据详细信息”页面,但当用户输入其信用卡详细信息时,这些信息将保存在攻击者服务器上,然后重定向回原始网站。

我在这篇文章中写道

简短的版本是,如果允许画布自身绘制本地文件,那么它可能会绘制本地驱动器上的文件(您专用)或仅对您可见的专用站点(
internal.myWebsite.com
),获取其图像数据,并将该文件上载到服务器,从而有效地窃取图像。我们无法做到这一点,所以“本地文件和跨域文件破坏源文件清理”规则已经到位


如果你拥有一个网站,并且希望能够以跨来源的方式使用这些图像,你需要这样做。

@Alnitak但这个问题并不能解释“为什么”