浏览器中运行的代码可以使用哪些用户信息?

时间:2011-04-24 07:02:29

标签: browser web sandbox

我最近与某人讨论过网站在用户机器上截取屏幕截图的能力。他认为,使用GUI程序来模拟快速点击鼠标以赢得一个简单的Flash游戏,理论上可以通过记录异常高分并检测这些玩家桌面的屏幕截图进行主持人审查来检测(如果网站足够关注)。我认为,由于所有网站代码都在浏览器中运行,因此无法走出系统以获取此类屏幕截图。

这可以通过Javascript,Flash或其他任何方法(可接受的或邪恶的)来对网站的功能进行更广泛的讨论,以便在系统之外迈出这一步。我们同意至少有些东西是可以获取的:操作系统,用户完整桌面的大小。但是我们无法就沙盒中的浏览器代码是如何达成一致的。总而言之,他给网站代码提供了比我更多的信誉。

那么,谁是对的?网站可以采用桌面截图吗?他们能列举所有打开的窗户吗?他们还能(或不能)做什么?显然,任何此类代码都必须是特定于操作系统的,但想象一个雄心勃勃的网站愿意编写代码来定位多个操作系统和系统。

谷歌搜索引发了许多红色鲱鱼,信息相对较少,所以我决定在这里问一下

1 个答案:

答案 0 :(得分:1)

一般来说,浏览器的安全模型应该保持javascript代码完全包含在其沙箱中。无法在窗口对象及其子对象的属性中反映的有关本地计算机的任何内容都无法访问。

另一方面,插件有免费统治。它们由用户安装,可以访问用户可以访问的任何内容。这就是为什么他们能够访问您的网络摄像头,上传文件,进行病毒扫描等等。他们还能够将API暴露给javascript代码,这会在javascript沙箱中发现漏洞并为javascript代码提供一些外部访问权限。这就像Phonegap这样的工具如何在网络应用中提供javascript代码访问手机硬件(gps,方向,相机等)