【问题标题】:Does Firefox allow extensions to bypass a normal web page's CSP?Firefox 是否允许扩展绕过普通网页的 CSP?
【发布时间】:2018-12-11 15:14:51
【问题描述】:

我有一个带有这样 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 规则是否有帮助?

谢谢。

【问题讨论】:

    标签: firefox firefox-addon firefox-addon-sdk content-security-policy firefox-addon-webextensions


    【解决方案1】:

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

    此外,扩展程序有足够的能力即时覆盖页面 CSP(例如,通过重写响应标头),但它们通常不需要它。

    作为网站作者,您无法采取任何措施来防止扩展程序干扰您的页面。

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

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

    【讨论】:

    • 在 Firefox 89.0 上尝试从内容脚本连接到 Web 套接字显示 Content Security Policy: The page’s settings blocked the loading of a resource at wss://echo.websocket.org/ (“connect-src”). 它在后台脚本上运行良好,但使用相同的 CSP content_security_policy: "default-src 'self'; connect-src wss://echo.websocket.org;"
    猜你喜欢
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多