michaeld
(Michael - Communiteq)
1
症状:更新到 3.4 后,整个论坛都显示“Oops”。更糟糕的是,日志对此保持完全沉默。
有一个主题组件,其“扩展安全策略”值为 script-src: 'unsafe-eval' https://redacted.example.com
这导致了整个论坛崩溃,因为动作调度器中抛出了一个异常,因为值中存在空格。
ActionDispatch::ContentSecurityPolicy::InvalidDirectiveError (无效的内容安全策略 script-src: \"'unsafe-eval' https://redacted.example.com\"。指令值不得包含空格
或分号。请改用多个参数或其他指令方法。)
哦,我忘了最重要的事情。安全模式不起作用!!
5 个赞
kelv
(Kelvin T)
4
我会进一步调查此事并回复您。在升级到 3.4 之前,您的论坛的 Discourse 版本是多少?
1 个赞
kelv
(Kelvin T)
6
嘿 @michaeld,我已将 FIX: invalid CSP directive sources should allow site to boot with valid CSP directives by tyb-talks · Pull Request #31256 · discourse/discourse · GitHub 的修复合并到最新的 main 分支。现在该修复也已在 tests-passed 和 stable 分支中可用。
此 CSP 指令处理行为的更改源于 Rails 中一个回传的安全补丁——我在 PR 中对此进行了更详细的说明。
Discourse 现在将在构建 CSP 之前过滤掉这些值。
关于安全模式,由于它只禁用 JavaScript 部分,因此在这里无济于事,因为这些数据是在服务器端处理的。
5 个赞
j.jaffeux
(Joffrey Jaffeux)
关闭
8
此主题在上次回复后 3 天自动关闭。不允许新的回复。