内容安全策略阻止了我的语言环境 NUXT JavaScript 文件

Content Security Policy blocks my locale NUXT JavaScript files

我已尝试为我的站点设置 CSP header 以从可信资源加载数据

CSP 阻止了我的本地 JS 文件。这是我的 nuxt.config.js:

const self = 'localhost:*'
render: {
    csp: {
        reportOnly:false,
        addMeta: true,
        policies: {
            'default-src': [self],
            'script-src': [self, 'unsafe-inline','strict-dynamic'],
            'style-src': [self,"'unsafe-inline'"],
            'img-src':[self,'data:'],
            'object-src':[self,'self']
        }
    }
},

已阻止的文件:

http://localhost:3500/_nuxt/runtime.js
http://localhost:3500/_nuxt/layouts/default.js
http://localhost:3500/_nuxt/pages/index.js
http://localhost:3500/_nuxt/commons/app.js
http://localhost:3500/_nuxt/vendors/app.js
http://localhost:3500/_nuxt/app.js

错误:

Refused to load the script '<URL>' because it violates the following Content Security Policy directive: "script-src 'sha256-6SIdoCBgtiLdpIihMzGUvd5OCiaDdcIHhB8Tzkn9l8M='". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.

这是 header 请求显示在网络选项卡中以获取更多详细信息,这很奇怪但是有一次它获得相同的 js 文件并且有一次它给出错误...

下面的示例来自 mdn 文档。我猜你的问题可以由其中之一解决。更多例子请参考here

示例 1

网站管理员希望所有内容都来自网站自己的来源(不包括子域。)

Content-Security-Policy: default-src 'self'

示例 2

网站管理员想要允许来自受信任域及其所有子域的内容(它不必与设置 CSP 的域相同。)

Content-Security-Policy: default-src 'self' trusted.com *.trusted.com

示例 3

网站管理员希望允许 Web 应用程序的用户在他们自己的内容中包含来自任何来源的图像,但将音频或视频媒体限制为可信任的提供商,并且所有脚本仅可用于托管可信任的特定服务器代码。

Content-Security-Policy: default-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com

此处,默认情况下,仅允许来自文档来源的内容,但以下情况除外:

图像可以从任何地方加载(注意“*”通配符)。 媒体只允许来自 media1.com 和 media2.com(而不是来自这些网站的子域)。 可执行脚本只允许来自 userscripts.example.com.

我将 addMeta 更改为 false,问题解决了! 稍后我会解释原因

const self = 'localhost:*'
render: {
    csp: {
        reportOnly:false,
        addMeta: false,
        policies: {
            'default-src': [self],
            'script-src': [self, 'unsafe-inline','strict-dynamic'],
            'style-src': [self,"'unsafe-inline'"],
            'img-src':[self,'data:'],
            'object-src':[self,'self']
        }
    }
},