web-dev-qa-db-fra.com

Comment remplacer la politique de sécurité du contenu tout en incluant un script dans la console JS du navigateur?

J'essayais d'inclure JQuery sur un site Web existant à l'aide de la console de cette façon:

var script = document.createElement('script');
script.src = 'http://code.jquery.com/jquery-1.11.1.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);

Puis j'ai eu cette erreur:

Content Security Policy: The page's settings blocked the loading of a resource at http://code.jquery.com/jquery-1.11.1.min.js ..

Pendant le développement, je souhaiterais peut-être inclure du code Javascript externe. Je ne voudrais peut-être pas copier/coller tout le code JQuery car il n'a pas l'air soigné. Comment remplacer la politique de sécurité du contenu à des fins de développement?

Cela serait vraiment utile pour des tests rapides. Je pourrais vouloir convertir le script que j'écris en une extension de navigateur plus tard.

Note (mise à jour): J'écris le script sur un site Web existant et je n'ai pas le contrôle sur la définition de l'en-tête Content-Security-Policy.

43
Pranjal Mittal

Vous pouvez désactiver le CSP pour votre navigateur entier dans Firefox en désactivant security.csp.enable dans le about:config menu. Si vous faites cela, vous devriez utiliser un navigateur entièrement séparé pour le test . Par exemple, installez Firefox Developer Edition à côté de votre navigateur habituel et utilisez-le à des fins de test (et pas utilisation Web normale.

Au lieu de cela, il devrait être possible de modifier le Content-Security-Policy en-tête de réponse avant qu’il n’atteigne votre navigateur (via un proxy HTTP). Il est également possible de faire cela avec des extensions.

A Chrome peut définir son propre CSP pour son propre chrome-extension://... pages, mais il ne peut pas modifier le CSP d’une page Web normale.

47
apsillers