内容安全策略通配符似乎被忽略
Content Security Policy wildcard seems to be ignored
为了提供一些上下文,这是一个 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 明显匹配,还是我遗漏了什么?
我要在这里回答自己:你不能。
2 个选项是:禁用网络安全或启动静态网络服务器。
如果没有看到您的实现很难知道,但这里有一些建议:
- 首先在CSP中仅使用*.sentry.io进行测试;添加出现在错误中的域。这个想法是提出使其工作的最小 CSP。
- 我的 CSP 在列表末尾有“数据:”。我不记得为什么,但我认为是有原因的...
- 确保用分号“;”结束每个列表
(回答为 post 因为我没有足够的声誉来发表评论)
*.sentry.io
来源是 recomended by docs.sentry.io
文档,即使将它放在 default-src
指令而不是 connect-src
指令中,它也绝对应该有效。 CSP 支持通配符指定子域。
CSP 可以阻止允许的来源的唯一原因是 NoScript/uBlock 等浏览器插件的存在。
尝试提供帮助的建议:
您能否也尝试 明确设置 connect-src
为
connect-src sentry.io https://*.sentry.io *.sentry.io;
(可能还有其他需要的主机)
你还收到这个错误吗?
为了提供一些上下文,这是一个 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 明显匹配,还是我遗漏了什么?
我要在这里回答自己:你不能。
2 个选项是:禁用网络安全或启动静态网络服务器。
如果没有看到您的实现很难知道,但这里有一些建议:
- 首先在CSP中仅使用*.sentry.io进行测试;添加出现在错误中的域。这个想法是提出使其工作的最小 CSP。
- 我的 CSP 在列表末尾有“数据:”。我不记得为什么,但我认为是有原因的...
- 确保用分号“;”结束每个列表
(回答为 post 因为我没有足够的声誉来发表评论)
*.sentry.io
来源是 recomended by docs.sentry.io
文档,即使将它放在 default-src
指令而不是 connect-src
指令中,它也绝对应该有效。 CSP 支持通配符指定子域。
CSP 可以阻止允许的来源的唯一原因是 NoScript/uBlock 等浏览器插件的存在。
尝试提供帮助的建议:
您能否也尝试 明确设置 connect-src
为
connect-src sentry.io https://*.sentry.io *.sentry.io;
(可能还有其他需要的主机)