Problema com Strict Dynamic e CSP no Widget da Atlassian
Estou encontrando um problema com a Política de Segurança de Conteúdo (CSP) após a atualização para a v3.3.0.beta1. Especificamente, estou tentando incorporar um widget da Atlassian no cabeçalho do meu contêiner, que foi criado antes desta atualização.
Certifiquei-me de incluir o nonce, mas estou encontrando os seguintes erros:
embed.js:1 Refused to set the document's base URI to 'https://jsd-widget.atlassian.com/' because it violates the following Content Security Policy directive: "base-uri 'self'".
embed.js:1 Refused to load the script 'https://jsd-widget.atlassian.com/assets/iframe.js' because it violates the following Content Security Policy directive: "script-src 'nonce-YAnMdLzmoWqLis3WXiQKjxdHk' 'strict-dynamic'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
Além disso, deparei-me com uma sugestão em uma postagem anterior para carregar o script dinamicamente desta forma:
javascript
var s = document.createElement('script');
s.src = "https://jsd-widget.atlassian.com/assets/embed.js";
document.body.appendChild(s);
No entanto, isso não parece resolver o problema. Claramente, estou perdendo algo sobre como strict-dynamic deve funcionar neste contexto.
Alguém pode me ajudar a entender por que esses erros estão ocorrendo e como posso resolvê-los? Qualquer orientação seria apreciada!
Curiosamente, eu estava justamente analisando um problema quase idêntico.
Consigo reproduzir um problema semelhante na versão mais recente que foi recentemente reconstruída.
Estou recebendo:
[Report Only] Recusou-se a carregar o script 'https://www.mytestsite.com/mini-profiler-resources/includes.js?v=116e2a6fd81c286e004e2a0afb03baa1' porque viola a seguinte diretiva de Política de Segurança de Conteúdo: \"script-src 'nonce-ZSPIEwDBo6e07GuQMDkOFZerD' 'strict-dynamic'\". Observe que 'script-src-elem' não foi definido explicitamente, portanto, 'script-src' está sendo usado como fallback.
Algum de vocês pode compartilhar um link para um site que mostre esse problema? Ficarei feliz em dar uma olhada rápida
Se você adicionou isso por meio de componentes de tema, deverá remover a parte nonce=. O Discourse a adicionará automaticamente (e acho que adicioná-la você mesmo pode quebrar o sistema automático)
O código que estou adicionando é <script data-jsd-embedded data-key="bla" data-base-url="https://jsd-widget.atlassian.com" src="https://jsd-widget.atlassian.com/assets/embed.js"></script>
Parece que o script embed.js está sendo executado com sucesso, então o lado do Discourse está funcionando.
No entanto, ele está tentando criar um iframe de mesma origem, que inclui tags de script ‘parser-inserted’. Esse tipo de estratégia não é compatível com uma CSP ‘strict-dynamic’.
Portanto, acho que isso é algo que a Atlassian precisaria corrigir. Deparei-me com este problema no rastreador deles, que parece relevante (embora não tenha muitos detalhes ou uma resolução )