我在 NextJs 项目中面临一个令人费解的问题,其中 connect-src 指令触发了内容安全策略 (CSP) 违规,尽管我的配置似乎允许所有连接。我收到的违规错误消息如下:
connect-src:csp_violation:“https://< URL >/api/v2/rest”被阻止 策略“default-src 'self'; script-src”的“connect-src”指令 '自我' '报告样本'; style-src 'self' '报告样本';基本 URI 是……”
这是我实际的 CSP 标头:
default-src 'self' *.url1.com *.url2.dev *.url3.com *.url4.com *.url5.io;
style-src 'self' 'unsafe-inline';
script-src 'self' https://url6.com *.url8.com *.url7.com 'unsafe-eval' 'sha256-<token>=' https://www.url8.com;
worker-src blob:;
font-src 'self';
frame-src 'self';
media-src 'self';
object-src *;
img-src 'self' *.url9.net;
connect-src *;
base-uri 'self';
鉴于此配置,尚不清楚为什么要求
https://< URL>/api/v2/rest
被阻止,因为我的 connect-src 指令明确允许所有与 * 的连接。我正在考虑添加
connect-src:* https://< URL>/api/v2/rest;
明确政策。这是正确的方法吗?还是我应该考虑采取其他步骤来解决此问题?我对如何继续感到有点茫然,希望得到任何指导或建议。
当错误消息中的策略与您设置的策略不匹配时,最可能的解释是设置了多个 CSP。所有内容都需要通过所有政策。检查其他策略的响应标头,并尝试确定它们的设置位置/方式,以便能够修改/禁用它们。它们可以在代码、Web 服务器配置或代理中设置。