node.js - 尽管正在定义 CSP script-src-elem 错误,但如何修复它?
问题描述
我的哈巴狗的元标记中有类似的东西。我的文件中有一个 ton 2 3 CDN。
meta(http-equiv='Content-Security-Policy' content="default-src * 'unsafe-inline' 'unsafe-eval'; script-src-elem * 'unsafe-inline';" )
尽管我已经定义了 script-src-elem,但我得到了一个类似这样的错误。
Refused to load the script '<URL>' because it violates the following Content Security Policy directive: "script-src 'self'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
我将衷心感谢您的帮助。先感谢您
解决方案
让我猜猜。您使用与 Express 链接的 PUG。在 Express 中,您使用 Helmet 安全中间件。
关键是 Helmet 4 默认通过 HTTP 标头发布 CSP,并且
script-src 'self'
是该 Helmet 默认 CSP 的片段。
由于您发布了一个 CSP,因此您不能使用元标记来放松它。在发布 2 个 CSPS 的情况下,所有源都应完整地通过两个 CSP。因此,您的script-src-elem * 'unsafe-inline'
from 元标记不会触发违规,而是script src 'self'
来自 CSP HTTP 标头 - 确实会引发违规。
您必须删除元标记并通过helmet.contentSecurityPolicy(options) 配置Helmet 。或者在 Helmet 中禁用CSP 并使用元标记:
app.use(
helmet({
contentSecurityPolicy: false,
})
);
推荐阅读
- javascript - Netflify CMS 手动初始化中的环境变量(Gridsome)
- angular - Ionic 4 Refresher 没有传入 refresher 对象,所以我无法完成它
- javascript - 在星期六的重力形式日期选择器上显示警报
- python - pytorch 复制权重仅适用于冒号
- r - 如何在r中将平面回归变为曲面?
- c - 重新定义 stm32f3 的初始堆栈指针值
- mysql - 如果表a中不存在mysql查询从表b中获取数据
- python - 计算 FFT 峰的强度
- mysql - 试图改善缓慢的 MySQL 查询查找
- google-apps-script - 在表单提交事件中打开 URL - Google App Script