首页 > 解决方案 > Firefox 是否允许扩展绕过普通网页的 CSP?

问题描述

我有一个带有这样的 CSP 的网页: <meta http-equiv="Content-Security-Policy" content="script-src 'self' https://d2wy8f7a9ursnm.cloudfront.net https://cdn.polyfill.io https://browser-update.org https://static.zdassets.com https://ekr.zdassets.com https://mysite.zendesk.com wss://mysite.zendesk.com https://*.zopim.com https://*.googleapis.com 'unsafe-inline' 'unsafe-eval'">

出于隐私原因,在这篇文章中,我将公司名称替换​​为mysite. 另请注意,使用unsafe-eval是因为我有一些需要它进行模板的遗留代码。

我的网站包括 bugsnag 错误监控,我为用户挑选了一个特定错误,其中面包屑显示 XmlHttpRequest 调用听起来像广告软件和/或恶意软件的可疑域。还有一些控制台日志字符串“swbtest loaded”。

尽管用户可能禁用了 Firefox 设置security.csp.enable,但我认为这极不可能。这位用户是我通过电子邮件发送给我的客户,她似乎不适合这样做。

我的问题是:(1)这看起来像 Firefox 扩展/插件吗?(2) 如果是这样,它是如何绕过我的 CSP 的?还是unsafe-eval允许扩展访问?(3) 为 CSP 添加 connect-src 规则是否有帮助?

谢谢。

标签: firefoxfirefox-addonfirefox-addon-sdkcontent-security-policyfirefox-addon-webextensions

解决方案


扩展根本不关心页面 CSP。它们可以与您的代码一起运行代码(它们不受页面 CSP 的约束),或者在页面 JavaScript 上下文中注入任意代码。

此外,扩展有足够的能力在运行中覆盖页面 CSP(例如通过重写响应头),但它们通常不需要它。

作为网站作者,您无法阻止扩展程序干扰您的页面。

不幸的是,这意味着您获得的报告中的“噪音”。

值得注意的是,“swbtest”似乎与 Selenium 浏览器自动化/测试套件有关。


推荐阅读