我们于 2021-04-08 更新了 Discourse。
随后我们注意到 content_security_policy 可能存在一些问题。
GTM 用于 content security policy 的 script src
按 F12 打开控制台:
此问题发生在 Discourse 更新至最新版本后。
我们于 2021-04-08 更新了 Discourse。
随后我们注意到 content_security_policy 可能存在一些问题。
GTM 用于 content security policy 的 script src
按 F12 打开控制台:
此问题发生在 Discourse 更新至最新版本后。
您能向我们展示实际发送的完整 CSP 头部吗?
非常感谢您的快速回复。
我尝试从 Firefox 加载头部信息,不确定是否操作正确。
请查看屏幕截图附件。
已切换至 Chrome。
在这里,您或许可以看到更详细的请求信息。
自从原始帖子发布以来情况一定有所变化,因为现在它的表现已符合预期:
○ → curl -I https://www.ossez.com
HTTP/2 200
…
content-security-policy: base-uri 'none'; object-src 'none'; script-src https://www.ossez.com/logs/ https://www.ossez.com/sidekiq/ https://www.ossez.com/mini-profiler-resources/ https://www.ossez.com/assets/ https://www.ossez.com/brotli_asset/ https://www.ossez.com/extra-locales/ https://www.ossez.com/highlight-js/ https://www.ossez.com/javascripts/ https://www.ossez.com/plugins/ https://www.ossez.com/theme-javascripts/ https://www.ossez.com/svg-sprite/ https://www.googletagmanager.com/gtm.js 'nonce-38d2a45e5e933b869e14465772b2c0de' https: https://tagmanager.google.com https://www.googletagmanager.com 'unsafe-inline' https://analytics.ossez.com/matomo.js https://www.ossez.com/cdn-cgi/apps/head/qk5vBDFy7qBIoPy3q8a6LUoKei8.js https://www.googletagmanager.com/gtm.js; worker-src 'self' https://www.ossez.com/assets/ https://www.ossez.com/brotli_asset/ https://www.ossez.com/javascripts/ https://www.ossez.com/plugins/
'unsafe-inline' 现在已被正确加引号,但 Chrome 忽略了它:
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:[…] 请注意,如果源列表中存在哈希值或 nonce 值,则
'unsafe-inline'将被忽略。
Firefox 也是如此:
内容安全策略:在 script-src 或 style-src 中忽略“‘unsafe-inline’”:已指定 nonce 源或哈希源
这是因为您在 CSP 列表中指定了 nonce 值:'nonce-38d2a45e5e933b869e14465772b2c0de'
我看到您使用了 Cloudflare;请注意,您必须禁用 各种 Cloudflare 功能,因为默认情况下它们会破坏 Discourse 的正常运行。
非常感谢。