用 Chrome 扩展注入 javascript 应该那么容易吗?

Should it be so easy to inject javascript with a Chrome extension?

作为安全测试的一部分,我构建了一个非常基本的 Chrome 扩展,目的是能够读取安全 cookie 以及 localStorage 数据。我设法让它工作,这本身就是一件非常糟糕的事情,但是,在构建时我使用了以下行:

chrome.tabs.executeScript(tabs[0].id, {code: '...'});

现在,根据我的 understanding of this,这行代码实际上允许您在页面上执行任何 javascript,当然前提是用户同意权限。

有了这个,即使启用了 CSP header,任何人都可以很容易地创建一个扩展来完成我上面所做的事情。

使用扩展程序将 Javascript 注入网页应该那么容易吗?肯定不是!?

请记住,我的机器上有开发者模式的扩展程序 运行,还没有将它发布到 Chrome 商店,但我 haven't seen anything 关于扩展程序被批准,就是他们被批准并立即生活。

如果设计有可能发生这种情况,是否有任何方法可以防止此类事情发生?是否有任何 CSP headers 等可以帮助防止这种情况?

非常感谢大家

正如 Chirag Ranvindra 在评论中提到的:

browser extensions usually bypass all security features set on normal websites

Google 声明用户安装 Google Chrome 扩展程序 风险自负 ,大多数允许插件的软件都是这种情况、插件、模组等。

为了减少用户安装存在潜在风险的扩展程序的可能性,我们向用户发出了多项警告,例如安装前请求的权限、"Developer" 扩展程序可能存在安全风险的提醒,并且作为其条款和条件的一部分,可以并且确实停用了违反其扩展指南的扩展。

请参阅 The Google Chrome Terms and Conditions,特别是“20. Google Chrome 扩展的附加条款”。

与您下载的任何程序一样,您应该认真考虑是否有必要安装它,以及它是否来自信誉良好的开发商。我建议仅通过 Official Google Chrome Extensions Webstore

安装扩展