Chrome扩展程序是否可以访问标签内容(其他网站)

时间:2015-10-10 11:34:02

标签: javascript google-chrome security google-chrome-extension

有没有办法识别和阻止不属于您域名的JS文件/事件?

就像假设一样,如果我正在编写chrome的扩展名,我将以下代码放在我的JS中

$('div').on('click', function(){ alert("yup"); });

网站有办法处理这种情况吗?

编辑1:

在与@Clive讨论之后,我意识到所有扩展/应用程序都应该在沙箱中运行,并且不应该能够访问范围之外的事件/元素。

案例

Chrome扩展程序在input[type=text]input[type=password]上有一个按键事件。现在这个扩展在后台运行,所以JS文件总是可用的。因此,如果您打开Facebook并登录到您的帐户,此扩展程序将捕获数据并将其发送到其服务器。

我的案例

两位用户多次获得alert messages次。最初我们认为它是我们代码的一部分并检查了所有JS文件。但后来意识到,两个用户都有相同的扩展名,因此我们诊断出该扩展程序的JS文件,并在其中找到警报。现在我们很幸运,没有造成任何损害,但它仍然存在可能的安全威胁。

1 个答案:

答案 0 :(得分:0)

简短回答:不。

答案很长:

Chrome扩展程序会在与您网站代码分开的空间中运行其代码,因此他们根本无法进行互动。您可以做的最好的事情是阻止DOM编辑。幸运的是,chrome扩展已经在沙盒中运行,并且必须明确要求他们注入代码的域的权限,并且在安装扩展时列出了这些域。扩展程序与页面交互的唯一方法是通过activeTab权限,这是specific user action上的一次性权限。如果您使用的是您认为是恶意的扩展,那么您可以随时阅读代码,因为JS是自然开源的。这真的都归结为信任问题。安装一些东西明确地相信那件东西不会弄乱你的东西。这适用于所有程序。如果您不信任某个扩展程序,请不要安装它。沙盒只能阻止这么多,同时仍然让扩展做一些事情。