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ó!
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. 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.