为了提供一些上下文,这是一个 Electron 应用程序,使用 file://
加载 index.html内容安全策略似乎正在收缩:
Refused to connect to 'https://o944978.ingest.sentry.io/api/5893671/envelope/?sentry_key=0a6134a5d89d40c4954c6144b0e63c64&sentry_version=7' because it violates the following Content Security Policy directive: "default-src 'unsafe-inline' 'self' 'unsafe-eval' data: *.sentry.io *.cloudfront.net". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.
该 URL 显然与通配符 *.sentry.io 匹配,还是我遗漏了什么?
*.sentry.io
源代码由docs.sentry.io
文档推荐,即使您将其放入default-src
指令而不是
connect-src
指令中,它也绝对应该有效。 CSP 支持通配符指定子域。CSP 可以阻止允许的来源的唯一原因是 NoScript/uBlock 等浏览器插件的存在。
这 2 个选项是:禁用 Web 安全或启动静态 Web 服务器。
显式设置connect-src
connect-src sentry.io https://*.sentry.io *.sentry.io;
(也许还有其他需要的主机)您仍然遇到此错误吗?
*.ingest.sentry.io
和
*.ingest.us.sentry.io
。内容安全策略级别 3 规范表示通配符:
匹配主机子域(及其任何子域的子域等)上的任何资源但我发现情况并非如此,必须显式添加所有子域。