如何在 Google Chrome 扩展程序中使用 CDN 且不违反内容安全政策指令?

问题描述 投票:0回答:1

我正在开发 Google Chrome 扩展程序。在其中一个文件中,HTML 通过 CDN 调用外部脚本。我知道我需要在清单中提及相同内容,以免违反内容安全政策。在浏览了之前与同一主题相关的一些问题后,我发现答案不适合我,我不知道为什么?另外,我想提一下,我正在开发新的 manifest 版本 3

这是我从 HTML 文件调用的 CDN:-

 <script src="https://ajaxorg.github.io/ace-builds/src-min-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>

下面是我在manifest.json中编写的获取权限的代码:-

    "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self'; script-src-elem 'self' 'unsafe-inline' https://ajaxorg.github.io/;"
},

下面是我在控制台窗口中遇到的错误:-

Error Description

我是一个致力于扩展的完全初学者,所以如果有人指导我,这将非常有帮助。预先感谢!

javascript html google-chrome google-chrome-extension cdn
1个回答
0
投票

为了提高安全性,Chrome 在 Manifest V3 扩展程序或任何其他使用远程托管 JavaScript 的方式中删除了对 CDN 的支持。

他们推荐了一些解决方案:

    您还可以在运行时加载外部库,方法是在调用
  • scripting.executeScript()
     时将它们添加到文件数组中。您仍然可以在运行时远程加载数据:
    
    chrome.scripting.executeScript({ target: {tabId: tab.id}, files: ['jquery.min.js'] });
    
    
  • 只需将文件捆绑为扩展的一部分即可。我知道根据您发现的文章,这被视为不好的做法,但它对用户的影响很小,而且 Chrome 文档似乎没有问题。
  • <script src="./jquery.min.js"></script>
    
    
© www.soinside.com 2019 - 2024. All rights reserved.