首页 > 解决方案 > 接收不存在内容安全策略标头的内容安全策略错误

问题描述

我正在与第三方库 (Chargebee) 集成,并且收到内容安全违规错误。

据我所知,我的网页中没有定义 CSP,因为它不返回 CSP 响应标头:

在此处输入图像描述

虽然,在尝试使用这个库时,我遇到了以下错误:

在此处输入图像描述 在此处输入图像描述

问题

  1. 我正在使用其他第三方 JS 库,为什么我没有为其他任何人收到此错误?我以前从来没有为任何一个 CSP 指定过。

  2. 如果我确实定义了 CSP,那么我将阻止其他第三方库。我可以在不阻止其他人的情况下允许 Chargebee(并且不必将它们全部包含在 CSP 中)吗?

这没有意义。它表明我没有定义 CSP,因为它没有在我的标头中返回,我可以使用第三方资源,我什至使用 Chrome CSP 评估器扩展验证了这一点。然而,错误消息显示我确实定义了 CSP 策略。

我错过了什么吗?

标签: htmlwebcontent-security-policywebresource

解决方案


如果我确实定义了 CSP,那么我将阻止其他第三方库。我可以在不阻止其他人的情况下允许 Chargebee(并且不必将它们全部包含在 CSP 中)吗?

否 - CSP 是一个白名单协议。如果您定义一个 CSP,您需要映射所有各种所需的资源 - 至少对于您正在使用的指令(例如,您可以将您的 CSP 限制为仅script-srcand object-src,而忽略其他)。

由于您无法控制或预测 Chargebee CSP 需要哪些指令,因此最好使用预先确定的 CSP 包和 CSP 生成器。


推荐阅读