Comment résoudre un problème avec CSP

Bonjour ! J’ai un problème avec la CSP, comment puis-je résoudre cela ?

screen

Refused to execute inline script because it violates the following Content Security Policy directive: "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". Either the 'unsafe-inline' keyword, a hash ('sha256-ScCk7JwXKy22dTO0VFM7aV1chV+yd/MUda4X6VnGans='), or a nonce ('nonce-...') is required to enable inline execution.

Pour le test, je suis entré en safe mode, en mode sans échec, il y a le même problème.

1 « J'aime »

Ce n’est pas ma spécialité, mais j’ai fait une recherche et vous devrez peut-être réécrire le script en ligne que vous essayez d’utiliser :

2 « J'aime »

Je ne veux pas désactiver la protection CSP et je n’ai pas de scripts externes, j’ai essayé de désactiver tous les plugins et les composants du sujet, cela n’a pas aidé.

J’essaie d’ajouter tous ces liens à content security policy script src dans les paramètres d’administration, le problème était résolu :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 « J'aime »

Vous devez partager l’URL de votre site pour que nous puissions vous aider.

3 « J'aime »

Je peux vous l’envoyer par message privé ?

Hmm…

Il semble que j’aie trouvé la raison, il semble que le problème survienne parce que j’utilise la balise meta CSP dans mon thème :

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

Je dois utiliser la directive img-src pour limiter l’affichage des images provenant d’hôtes interdits.

Cette directive CSP va effectivement casser Discourse complètement.

2 « J'aime »

Comment puis-je modifier les directives CSP par défaut dans l’en-tête pour ajouter img-src sans utiliser de balise meta ? J’ai essayé ceci dans Rails, mais rien ne change :

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

J’ai supprimé cette meta balise, j’ai reconstruit et le problème a été résolu :frowning: