Componente de tema inválido: valor de "extend content security policy"

Sintomas: após a atualização para a versão 3.4, todo o fórum apresentou “Oops”. Para piorar, os logs permaneceram completamente silenciosos sobre isso.

Havia um componente de tema com “extend security policy” com o valor script-src: 'unsafe-eval' https://redacted.example.com

Isso travou todo o fórum devido a uma exceção lançada no despachante de ação, pois havia um espaço no valor.

ActionDispatch::ContentSecurityPolicy::InvalidDirectiveError (Invalid Content Security Policy script-src: \\\"'unsafe-eval' https://redacted.example.com\\\". Os valores da diretiva não devem conter espaços em branco
 ou ponto e vírgula. Use múltiplos argumentos ou outros métodos de diretiva em vez disso.)

Ah, esqueci a coisa mais importante. O modo de segurança não funcionou!!

5 curtidas

Vou investigar isso mais a fundo e retorno para você. Qual era a versão do Discourse do seu fórum antes da atualização para 3.4?

1 curtida

Foi em 3.3.3.

Olá @michaeld, mesclei uma correção na versão mais recente do main com FIX: invalid CSP directive sources should allow site to boot with valid CSP directives by tyb-talks · Pull Request #31256 · discourse/discourse · GitHub. Isso também está disponível em tests-passed e stable agora.

Essa mudança de comportamento no tratamento de diretivas CSP veio de um patch de segurança retroportado no Rails - abordo isso com mais detalhes no PR. :slight_smile: O Discourse agora filtrará tais valores antes de construir o CSP.

Em relação ao Modo Seguro, como ele apenas desabilita o lado JavaScript das coisas, ele não teria ajudado aqui, pois esses dados são processados no lado do servidor.

5 curtidas

Este tópico foi fechado automaticamente 3 dias após a última resposta. Novas respostas não são mais permitidas.