Symptome: Nach dem Update auf 3.4 gab das gesamte Forum „Ups“ aus. Zu allem Überfluss blieben die Protokolle dazu völlig stumm.
Es gab eine Themenkomponente mit „extend security policy“ mit dem Wert script-src: 'unsafe-eval' https://redacted.example.com
Dies brachte das gesamte Forum zum Absturz, da im Action Dispatcher eine Ausnahme ausgelöst wurde, weil sich ein Leerzeichen im Wert befand.
ActionDispatch::ContentSecurityPolicy::InvalidDirectiveError (Ungültige Content Security Policy script-src: \\\"'unsafe-eval' https://redacted.example.com\\\". Direktivenwerte dürfen keine Leerzeichen enthalten
oder Semikolons. Bitte verwenden Sie stattdessen mehrere Argumente oder andere Direktivenmethoden.)
Oh, ich habe das Wichtigste vergessen. Der sichere Modus funktionierte nicht!!
Diese Verhaltensänderung bei der Handhabung von CSP-Direktiven entstand aus einem zurückportierten Sicherheitspatch in Rails – ich gehe im PR näher darauf ein. Discourse wird solche Werte nun filtern, bevor die CSP erstellt wird.
Was den Safe Mode betrifft, da er nur die JavaScript-Seite deaktiviert, hätte er hier nicht geholfen, da diese Daten serverseitig verarbeitet werden.