Erreur CSP lors de l'utilisation d'une bibliothèque tierce dans un plugin

Après de nombreuses tentatives et approches différentes, j’ai réussi à charger avec succès une bibliothèque tierce à utiliser dans mon plugin.

La bibliothèque est située sous public/javascripts/some-library.js.

Dans mon contrôleur, je parviens à charger le script avec succès via :

loadScript("/plugins/my-plugin/javascripts/some-library.js")

Dans certaines occasions, dans ce fichier, la bibliothèque crée des Blobs et les assigne à des variables qui sont utilisées. Par exemple :

var A=URL.createObjectURL(new Blob(['\n\tsome code snippet...],{type:"application/javascript"}))

Et chaque fois que j’essaie d’utiliser la bibliothèque dans le code de mon plugin, j’obtiens :

Refused to load the script 'blob:http://localhost:4200/f33a6788-a853-4286-883a-48cb8e2c9cc1' because it violates the following Content Security Policy directive: "script-src http://localhost:4200/assets/ etc etc...

Quelle serait la meilleure façon de contourner ce problème ?

Merci pour toute aide et conseils !

1 « J'aime »

Et si vous ajoutiez simplement http://localhost:4200 à la CSP ?

J’ai en fait essayé cela, et cela n’a rien changé :confused:

Qu’en est-il de blob:http://localhost:4200 ?

J’ai essayé cela aussi, mais c’est une déclaration invalide pour une CSP :confused:

Pour ceux qui tombent sur ceci, la ligne correcte à ajouter à script src de la CSP est blob:

Attendez ! Vous n’avez pas besoin d’implémenter CSP en développement, vous n’êtes pas exposé aux attaquants ?

Cela bloquera également certains outils de développement potentiellement.

Désactivez simplement ce paramètre :

Simple.

Je retarderais ce casse-tête jusqu’à ce que vous ayez un plugin fonctionnel testé sur un serveur de staging de production.

J’étais en effet dans la phase de préparation pour la production, donc c’était le dernier casse-tête à résoudre. Et d’ailleurs, je n’aime pas retarder ces choses, surtout quand j’ai besoin de savoir si elles pourraient être un obstacle potentiel et que je dois trouver une autre voie :man_surfing:

Oui, mais vous devriez travailler sur la configuration CSP sur le serveur de staging de production qui a une véritable adresse Internet.

Localhost n’est pas une adresse Internet ! :slight_smile::wink: Ce n’est même pas https…

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.