尽管正在定义 CSP script-src-elem 错误,但如何修复它?

问题描述

我的哈巴狗的元标记中有这样的东西。我的文件中有大量 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. 我将衷心感谢您的帮助。提前致谢

解决方法

您的浏览器似乎不支持此指令。

您收到的消息已在 MDN enter image description here

上进行了说明

如果 script-src-elem 不存在,用户代理回退到 script-src 指令,如果该指令也不存在,则使用 default-src。

顺便说一句:

指定 JavaScript 元素的有效来源,但不指定内联脚本事件处理程序(如 onclick)

,

让我猜猜。您使用与 Express 链接的 PUG。在 Express 中,您使用 Helmet 安全中间件。

重点是 Helmet 4 默认通过 HTTP 标头发布 CSP,并且 script-src 'self' 是此头盔默认 CSP 的片段。

由于您发布了一个 CSP,您不能使用元标记来放松它。在发布 2 个 CSPS 的情况下,所有来源都应无划痕地通过两个 CSP。因此,来自元标记的 script-src-elem * 'unsafe-inline' 不会触发违规,但来自 CSP HTTP 标头的 script src 'self' 确实会引发违规。
您必须删除元标记并通过 helmet.contentSecurityPolicy(options) 配置 Helmet。或者 disable 头盔中的 CSP 并使用元标记:

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...