如何在启用头盔的情况下在 nodejs 应用程序中使用 3rd 方库和内联脚本

问题描述

我正在开发一个 nodejs 应用程序并实现了一些安全性, 我用过这样的头盔

app.use(helmet()) 

现在浏览器不允许我使用第三方库和内联脚本。你可以查看图片

所以我找到了解决方案。见下文

app.use(helmet({  contentSecurityPolicy: false}))

现在一切都解决了。 我想知道为什么会发生这种情况,如何在没有设置 contentSecurityPolicy: false 的情况下使用 3rd 方库和内联脚本

我还发现我们必须在公共文件夹中包含一个 manifest.json 文件,并在其中提及所有第三方库。如何暗示?提前致谢

enter image description here

解决方法

这里是头盔维护者。

发生这种情况的原因是 Helmet 默认设置的内容安全策略。要解决您的问题,您需要配置 Helmet 的 CSP。

MDN has a good documentation about CSP 我推荐阅读它作为背景。之后,查看Helmet's README以了解如何配置其 CSP 组件。

总而言之:要解决您的问题,您需要告诉 Helmet 配置您的 CSP。