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

Síntomas: después de la actualización a la 3.4, todo el foro mostró “Oops”. Para empeorar las cosas, los registros permanecieron completamente en silencio al respecto.

Había un componente de tema con “extend security policy” con el valor script-src: 'unsafe-eval' https://redacted.example.com

Esto bloqueó todo el foro debido a una excepción lanzada en el despachador de acciones, porque había un espacio en el valor.

ActionDispatch::ContentSecurityPolicy::InvalidDirectiveError (Invalid Content Security Policy script-src: \"'unsafe-eval' https://redacted.example.com\". Directive values must not contain whitespace
 or semicolons. Please use multiple arguments or other directive methods instead.)

Oh, olvidé lo más importante. ¡El modo seguro no funcionó!

5 Me gusta

Investigaré esto más a fondo y me pondré en contacto con usted. ¿Cuál era la versión de Discourse de su foro antes de la actualización a la 3.4?

1 me gusta

Fue en la 3.3.3.

Hola @michaeld, he fusionado una corrección en la última versión de main con FIX: invalid CSP directive sources should allow site to boot with valid CSP directives by tyb-talks · Pull Request #31256 · discourse/discourse · GitHub. Esto también está disponible en tests-passed y stable ahora.

Este cambio en el comportamiento al manejar las directivas CSP provino de un parche de seguridad retroportado en Rails; lo explico con más detalle en el PR. :slight_smile: Discourse ahora filtrará dichos valores antes de construir el CSP.

En cuanto al modo Seguro, como solo deshabilita el lado de JavaScript, no habría ayudado aquí ya que estos datos se procesan en el lado del servidor.

5 Me gusta

Este tema se cerró automáticamente 3 días después de la última respuesta. Ya no se permiten nuevas respuestas.