Ajout automatique de scripts de thème à la CSP

Nous voyons souvent des sujets de support de personnes essayant d’ajouter des références JavaScript externes à leurs thèmes. Par défaut, la politique de sécurité du contenu (CSP) bloque cela, et l’administrateur doit ajouter manuellement le script au paramètre du site CSP (ou à un paramètre/modificateur de thème).

Cependant, @Johani a fait une excellente suggestion sur la façon dont nous pouvons l’améliorer.

Plutôt que de demander aux développeurs de thèmes de copier/coller des éléments dans l’interface d’administration, nous pouvons le faire automatiquement. Nous pouvons analyser tout le HTML d’un thème, extraire la source de tous les scripts externes et les ajouter à la CSP.

Après tout, les ordinateurs sont bien meilleurs que les humains pour les opérations répétitives de copier/coller !

J’ai ouvert une PR qui l’implémente :

https://github.com/discourse/discourse/pull/9531

15 « J'aime »

Je rencontre des erreurs dans la console en local :

image

Dans les environnements de production, je vois également des sources ajoutées au format https://CDN_SERVER/theme-javascripts/31657759d037d8c06397e9965a1113169100846e.js..., ce qui est redondant car la stratégie autorise déjà https://CDN_SERVER/theme-javascripts. Serait-il possible de limiter l’extension automatique aux sources de scripts externes uniquement ?

6 « J'aime »

Merci @pmusaraj, j’ai ajouté quelques vérifications supplémentaires pour nous assurer que nous ne servons pas d’URL invalides dans la CSP, et j’ai également veillé à exclure les URL de theme-javascript :

7 « J'aime »

C’est génial. @merefield, c’est pas super cool ?

1 « J'aime »