使用Javascript从屏幕或div读取像素

时间:2014-09-24 14:20:10

标签: javascript jquery svg

我的网站加载了iframe来自其他域的内容。我想给我的网站用户带来“截图”的能力。理想情况下,我想捕获iframe的一部分,并在我的网站上的divsvg中呈现读取的像素。

但我不确定Javascript是否能够做到这样的事情。 Javascript可以读取iframediv或屏幕的任何部分的像素吗?

1 个答案:

答案 0 :(得分:0)

浏览器不允许你这样做,这是一个例子:

假设你运行了一个名为nefarious-site.com的域名。在首页上,有一个<iframe> src="https://popular-mail-site.com/"。由于邮件站点非常受欢迎,并且因为用户已经登录到热门邮件站点,他们的电子邮件将加载到iframe中。

当所有内容完成加载后,nefarious-site使用JavaScript“截取”iframe并通过XHR将图像发送到恶意站点服务器。繁荣。 Nefarious网站现在已经窃取了有关用户邮箱的信息,甚至无需解决破解用户密码的问题。

当然,有很多情况下这不起作用 - 如果用户没有登录或没有帐户,nefarious-site将获得登录表单或错误文本的无用屏幕截图。但有时它会奏效,而且总比没有好。

所以,是的,这就是为什么浏览器非常保守让你做那样的事情。

(顺便说一下,设置X-Frame-Options标头以防止内容首先在<iframe>中呈现,这可能是热门邮件网站的最佳利益,但这既不是在这里也不是那里。)