¿Cómo solucionar el problema con CSP?

Hola! Tengo un problema con CSP, ¿cómo lo soluciono?

screen

Se denegó la ejecución de scripts en línea porque infringe la siguiente directiva de Política de Seguridad de Contenido: "script-src https://mydomain.com/logs/ https://mydomain.com/sidekiq/ https://mydomain.com/mini-profiler-resources/ https://mydomain.com/assets/ https://mydomain.com/brotli_asset/ https://mydomain.com/extra-locales/ https://mydomain.com/highlight-js/ https://mydomain.com/javascripts/ https://mydomain.com/plugins/ https://mydomain.com/theme-javascripts/ https://mydomain.com/svg-sprite/ https://mydomain.com". Se requiere la palabra clave 'unsafe-inline', un hash ('sha256-ScCk7JwXKy22dTO0VFM7aV1chV+yd/MUda4X6VnGans=') o un nonce ('nonce-...') para habilitar la ejecución en línea.

Para la prueba, entré en un modo seguro, en modo seguro hay el mismo problema.

1 me gusta

No es mi fuerte, pero he buscado y es posible que necesites reescribir el script en línea que estás intentando usar:

2 Me gusta

No quiero deshabilitar la protección CSP y no tengo scripts externos, intenté deshabilitar todos los complementos y los componentes del tema, no ayudó.

Intenté agregar todos estos enlaces a content security policy script src en la configuración de administrador, el problema se solucionó :frowning:

https://mydomain.com/logs/ https://mydomain.com/sidekiq/ https://mydomain.com/mini-profiler-resources/ https://mydomain.com/assets/ https://mydomain.com/brotli_asset/ https://mydomain.com/extra-locales/ https://mydomain.com/highlight-js/ https://mydomain.com/javascripts/ https://mydomain.com/plugins/ https://mydomain.com/theme-javascripts/ https://mydomain.com/svg-sprite/ https://mydomain.com`

1 me gusta

Necesitas compartir la URL de tu sitio para que podamos ayudarte.

3 Me gusta

¿Puedo enviárselo a tu MP?

Hm…

Parece que encontré la razón, parece que el problema ocurre porque uso la etiqueta meta CSP en mi tema:

<meta http-equiv="Content-Security-Policy" content="img-src https://imgur.com https://giphy.com">

Necesito usar la directiva img-src para limitar la visualización de imágenes de hosts prohibidos.

Esa directiva CSP de hecho romperá Discourse por completo.

2 Me gusta

¿Cómo puedo cambiar las directivas CSP predeterminadas en la cabecera para agregar img-src sin usar una etiqueta meta? Lo intenté en Rails, pero nada cambió:

Rails.application.config.action_dispatch.default_headers.merge!({'Content-Security-Policy' => "upgrade-insecure-requests; base-uri 'self'; object-src 'none'; script-src https://mydomain.com/logs/ https://mydomain.com/sidekiq/ https://mydomain.com/mini-profiler-resources/ https://mydomain.com/assets/ https://mydomain.com/brotli_asset/ https://mydomain.com/extra-locales/ https://mydomain.com/highlight-js/ https://mydomain.com/javascripts/ https://mydomain.com/plugins/ https://mydomain.com/theme-javascripts/ https://mydomain.com/svg-sprite/; worker-src 'self' https://mydomain.com/assets/ https://mydomain.com/brotli_asset/ https://mydomain.com/javascripts/ https://mydomain.com/plugins/; frame-ancestors 'self'; manifest-src 'self'; img-src data: https://mydomain.com https://imgur.com"})

Eliminaré esta metaetiqueta, reconstruiré y el problema se solucionó :frowning: