gpt4 book ai didi

google-chrome - 在 Chrome chrome 扩展 ://page 中使用 eval()

转载 作者:行者123 更新时间:2023-12-02 09:33:45 24 4
gpt4 key购买 nike

我知道这可能只是我愚蠢,但是在 Chrome 选项卡中,页面加载了以 chrome-extension:// 开头的 URL,脚本可以在线还是使用 eval(); ?我知道浏览器或页面actin oopups 或应用程序窗口不能使用它。我的扩展程序的一部分打开一个普通的新选项卡,其中包含一个使用 eval(); 的页面。

最佳答案

chrome-extension:// 源运行的所有页面都受 here 描述的默认内容安全策略的约束,特别是:

script-src 'self'; object-src 'self'

弹出窗口也被视为这样的页面,不可见的背景页面也是如此。如果您从扩展程序打开文件,它也将受到它的约束。

您可以:
  • 放宽(或收紧)包含 list 的所有页面的默认策略:
    "content_security_policy": "[POLICY STRING GOES HERE]"

    通过这种方式,您可以通过将 eval 添加到 'unsafe-eval' 来允许 script-src 和 friend 。

    您还可以通过将其来源添加到策略来允许加载外部脚本;但是,出于中间人保护的原因,只允许使用 HTTPS 源。

    但是,重要的是要记住,无论您的自定义策略如何,'unsafe-inline' 都将被忽略。
  • 通过 declaring it sandboxed 放宽(或收紧)特定页面的默认策略。
    "sandbox": {
    "pages": [
    "page1.html",
    "directory/page2.html"
    ]
    // content_security_policy is optional.
    "content_security_policy":
    "sandbox allow-scripts; script-src https://www.google.com"
    ],

    沙盒 CSP 可以更宽松,但仍然有一些限制。

    沙盒的代价是无法访问 Chrome API。沙盒脚本必须通过 DOM 消息与某些特权页面进行通信才能执行特权操作。

    文档中有一个指南,"Using eval in Chrome Extensions. Safely."


  • 对于应用程序,情况有点不同。同样,默认(且更具限制性)CSP 适用,但 you cannot modify it in the manifest

    不过,沙盒方法仍然有效。

    关于google-chrome - 在 Chrome chrome 扩展 ://page 中使用 eval(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29812709/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com