用 Chrome 扩展程序注入 javascript 应该这么容易吗?

Posted

技术标签:

【中文标题】用 Chrome 扩展程序注入 javascript 应该这么容易吗?【英文标题】:Should it be so easy to inject javascript with a Chrome extension? 【发布时间】:2018-06-30 23:28:21 【问题描述】:

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

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

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

有了这个,即使打开了 CSP 标头,任何人都可以很容易地创建一个扩展来做我上面所做的事情。

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

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

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

谢谢大家

【问题讨论】:

AFAIK,浏览器扩展通常会绕过在普通网站上设置的所有安全功能。我有插件可以更改我的 DOM、添加新功能(包括小部件)、发出网络请求等。我看到的唯一检查是扩展程序需要的权限。如果提供,扩展几乎可以做任何事情。 我虽然是这样,但我希望,由于谷歌在网络安全方面投入了大量精力,当扩展程序不在开发人员模式下运行时,可能会有一些不同的东西。对于 Google 来说,这似乎是一个巨大的安全问题...... 【参考方案1】:

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

浏览器扩展通常会绕过在普通网站上设置的所有安全功能

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

为减少用户安装存在潜在风险的扩展程序的机会,我们会向用户发出若干警告,例如在安装前请求许可、提醒“开发者”扩展程序可能存在安全风险,以及作为一部分他们的条款和条件,可以并且确实会停用违反其扩展指南的扩展。

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

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

【讨论】:

酷,好吧,官方的说法似乎是用户的责任,开发人员可以为所欲为!感谢您参考指南等,我会看看我们是否可以采取任何预防措施。再次感谢

以上是关于用 Chrome 扩展程序注入 javascript 应该这么容易吗?的主要内容,如果未能解决你的问题,请参考以下文章

用chrome开发工具注入CSS?

如何通过 Chrome 扩展将 CSS 注入网页?

Chrome扩展将侧边栏注入页面

在Chrome扩展程序中,您可以强制在一切之前注入一些javascript吗?

使用 JavaScript 将 Chrome 扩展注入 iFrame

Chrome 扩展:在加载的 Dom 上注入脚本