Come risolvere il problema con CSP

Ciao! Ho un problema con CSP, come posso risolvere questo problema?

screen

Rifiutato di eseguire script inline perché viola la seguente direttiva della Content Security Policy: \"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\". È necessaria la parola chiave 'unsafe-inline', un hash ('sha256-ScCk7JwXKy22dTO0VFM7aV1chV+yd/MUda4X6VnGans=') o un nonce ('nonce-...') per abilitare l'esecuzione inline.

Per il test, sono entrato in una modalità sicura, in modalità sicura c’è lo stesso problema.

1 Mi Piace

Non è il mio forte, ma ho cercato e potresti dover riscrivere lo script inline che stai cercando di usare:

2 Mi Piace

Non voglio disabilitare la protezione CSP e non ho script esterni, ho provato a disabilitare tutti i plugin e i componenti del tema, non ha aiutato.

Ho provato ad aggiungere tutti questi link a content security policy script src nelle impostazioni di amministrazione, il problema è stato risolto :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 Mi Piace

È necessario condividere l’URL del tuo sito affinché possiamo aiutarti.

3 Mi Piace

Posso inviarlo al tuo PM?

Hm…

Sembra che abbia trovato il motivo, sembra che il problema si verifichi perché uso il meta tag CSP nel mio tema:

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

Devo usare la direttiva img-src per limitare la visualizzazione delle immagini da host non consentiti.

Quella direttiva CSP interromperà effettivamente completamente Discourse.

2 Mi Piace

Come posso cambiare le direttive CSP predefinite nell’header, per aggiungere img-src senza usare un meta tag? Ci ho provato in Rails, ma non cambia nulla:

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"})

Ho eliminato questo meta tag, ho ricostruito e il problema è stato risolto :frowning: