我正在与第三方库 (Chargebee) 集成,但收到内容安全违规错误。
据我所知,我的网页中没有定义 CSP,因为它不返回 CSP 响应标头:
虽然,在尝试使用这个库时,我遇到了以下错误:
问题
我正在使用其他第三方 JS 库,为什么其他人没有收到此错误?我以前从未需要为任何 CSP 指定 CSP。
如果我确实定义了 CSP,那么我就会阻止其他第三方库。我是否可以允许 Chargebee 而不会阻止其他人(并且不必将它们全部包含在 CSP 中)?
没有意义。它表明我没有定义 CSP,因为它没有在我的标头中返回,我可以使用第三方资源,我什至使用 Chrome CSP 评估器扩展验证了这一点。然而,错误消息显示我确实定义了 CSP 策略。
我错过了什么吗?
答案 0 :(得分:-1)
如果我确实定义了 CSP,那么我就会阻止其他第三方库。我是否可以允许 Chargebee 而不会阻止其他人(并且不必将它们全部包含在 CSP 中)?
否 - CSP 是许可名单协议。
如果你定义了一个 CSP,你需要映射出所有需要的资源——至少对于你正在使用的指令(例如,你可以将你的 CSP 限制为仅 script-src
和 object-src
,并忽略其他)。
由于您无法控制或预测 which directives are needed for Chargebee CSP,因此最好使用预先确定的 CSP 包和一个 CSP generator。