Problème avec Strict Dynamic et CSP sur le widget Atlassian
Je rencontre un problème avec la politique de sécurité du contenu (CSP) après la mise à jour vers la version v3.3.0.beta1. Plus précisément, j’essaie d’intégrer un widget Atlassian dans l’en-tête de mon conteneur, qui a été créé avant cette mise à jour.
J’ai veillé à inclure le nonce, mais je rencontre les erreurs suivantes :
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.
De plus, j’ai trouvé une suggestion dans un article précédent pour charger le script dynamiquement comme ceci :
var s = document.createElement('script');
s.src = "https://jsd-widget.atlassian.com/assets/embed.js";
document.body.appendChild(s);
Cependant, cela ne semble pas résoudre le problème. Il me manque clairement quelque chose sur la façon dont strict-dynamic est censé fonctionner dans ce contexte.
Quelqu’un peut-il m’aider à comprendre pourquoi ces erreurs se produisent et comment je pourrais les résoudre ? Toute aide serait appréciée !
Assez drôlement, je regardais un problème presque identique.
Je peux reproduire un problème similaire sur la dernière version qui a été récemment reconstruite.
J’obtiens :
[Report Only] Refused to load the script 'https://www.mytestsite.com/mini-profiler-resources/includes.js?v=116e2a6fd81c286e004e2a0afb03baa1' because it violates the following Content Security Policy directive: "script-src 'nonce-ZSPIEwDBo6e07GuQMDkOFZerD' 'strict-dynamic'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
L’un de vous deux peut-il partager un lien vers un site montrant ce problème ? Je suis heureux d’y jeter un coup d’œil rapide
Si vous avez ajouté cela via des composants de thème, vous devriez supprimer la partie nonce=. Discourse l’ajoutera automatiquement (et je pense que l’ajouter vous-même pourrait casser le système automatique)
Salut David Merci beaucoup.
Pour la réponse rapide
Le code que j’ajoute est <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>
Il semble que le script embed.js s’exécute correctement, donc le côté Discourse fonctionne.
Cependant, il essaie ensuite de créer un iframe de même origine, qui inclut des balises de script « parser-inserted ». Ce type de stratégie n’est pas compatible avec une politique de sécurité de contenu (CSP) stricte et dynamique.
Je pense donc que c’est quelque chose qu’Atlassian devrait corriger. Je suis tombé sur ce problème sur leur tracker qui semble pertinent (bien qu’il n’y ait pas beaucoup de détails, ni de résolution )