Como corrigir problema com CSP

Olá! Estou com um problema com CSP, como posso corrigir isso?

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.

Para o teste, entrei em um modo seguro, no modo seguro há o mesmo problema.

1 curtida

Não é minha especialidade, mas fiz uma pesquisa e você pode precisar reescrever o script inline que está tentando usar:

2 curtidas

Não quero desativar a proteção CSP e não tenho scripts externos, tentei desativar todos os plugins e os componentes do tópico, não ajudou.

Tentei adicionar todos esses links a content security policy script src nas configurações do administrador, o problema foi resolvido :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 curtida

Você precisa compartilhar a URL do seu site para que possamos ajudá-lo.

3 curtidas

Posso enviar para o seu PM?

Hm…

Parece que encontrei o motivo, parece que o problema ocorre porque uso a meta tag CSP no meu tema:

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

Preciso usar a diretiva img-src para limitar a exibição de imagens de hosts proibidos.

Essa diretiva CSP realmente quebrará o Discourse completamente.

2 curtidas

Como posso alterar as diretivas CSP padrão no cabeçalho para adicionar img-src sem usar uma meta tag? Estou tentando isso no Rails, mas nada muda:

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

Vou excluir esta meta tag, reconstruir e o problema foi resolvido :frowning: