使用Javascript从屏幕或div读取像素
我的网站加载一个包含其他域内容的使用Javascript从屏幕或div读取像素,javascript,jquery,svg,Javascript,Jquery,Svg,我的网站加载一个包含其他域内容的iframe。我想让我的网站的用户能够拍摄“截图”。理想情况下,我希望捕获iframe的一部分,并在我的站点上以div或svg呈现读取的像素 但是我不确定Javascript是否能够做这样的事情。Javascript可以读取iframe、div或屏幕任何部分的像素吗?浏览器不允许您这样做,下面是一个示例: 假设您运行一个名为nefarious-site.com的域。在主页上,有一个,其src=”https://popular-mail-site.com/“。因为邮
iframe
。我想让我的网站的用户能够拍摄“截图”。理想情况下,我希望捕获iframe
的一部分,并在我的站点上以div
或svg
呈现读取的像素
但是我不确定Javascript是否能够做这样的事情。Javascript可以读取
iframe
、div
或屏幕任何部分的像素吗?浏览器不允许您这样做,下面是一个示例:
假设您运行一个名为nefarious-site.com的域。在主页上,有一个
,其src=”https://popular-mail-site.com/“
。因为邮件站点非常流行,而且用户有可能已经登录到流行邮件站点,所以他们的电子邮件将加载到iframe中
当所有内容完成加载后,nefarious站点使用JavaScript“截屏”iframe,并通过XHR将图像发送到nefarious站点服务器。繁荣这个邪恶的网站现在窃取了用户邮箱的信息,甚至不需要破解用户密码
诚然,在很多情况下,这是行不通的——如果用户没有登录或没有帐户,恶意网站将获得一个无用的登录表单截图或错误文本。但有时它会起作用,总比什么都没有好
所以是的,这就是为什么浏览器对于让你做这样的事情非常保守
(顺便说一句,设置
X-Frame-Options
标题以防止内容首先呈现在
中可能是热门邮件网站的最佳选择,但这一点既不在这里也不在那里。)可能的重复:如果域与用户所在的域不同,则不能复制,因为这会违反跨域策略