Extension Chrome - Contenu de la Politique de Sécurité de l'exécution de code en ligne
Je suis en utilisant un JavaScript externe lib dans mon extension chrome.
Je possède inline exécution, si je reçois suivant la nature de l'erreur
(L'erreur que je reçois sur console)
A refusé d'exécuter le code JavaScript URL, car elle viole la suite
Le contenu Politique de Sécurité de la directive: "script src 'auto'
chrome-extension://". Le "dangereux-inline' mot-clé, une table de hachage
('sha256 -..."), ou un nonce ('nonce-...') est nécessaire pour permettre inline
l'exécution.
Le message d'erreur dit clairement il y a un travail autour de la possible.
Chrome-Contenu De La Politique De Sécurité dit pas possible. Beaucoup de question liée à une cité ce lien.
Blog Ce blogueur dit que c'est possible, mais c'est probablement applicable à ne plus extension chrome.
Tout le travail autour de la possible?
PS: ne veux pas/ne peut pas changer la totalité de la bibliothèque que j'utilise.
EDIT: comment utiliser hachage ou nonce pour activer inline exécution.
merci de nous donner le code de la création de l'erreur
OriginalL'auteur Amit G | 2014-09-02
Vous devez vous connecter pour publier un commentaire.
Non, ce n'est pas possible d'assouplir cette politique.unsafe-inline
est spécifiquement ignorés par les Extensions de Chrome depuis le manifeste de la version 2.La Documentation (l'emphase est mienne):
Le message d'erreur mentionne plusieurs façons possibles, mais les docs sont clairement qu'aucun CSP permettra en ligne de script, et en ignorant
unsafe-inline
est que l'un des mesures.Mise à jour
Voir cette réponse pour plus de regard en profondeur sur la liste blanche.
unsafe-eval
), mais ce que les extensions de Chrome permettre dans un CSP est plus étroit que le général CSP spec.d'accord pour "dangereux-inline' aura pas d'effet. Mais je crois qu'il y a encore d'autres façons de hachage/nonce, comme indiqué par le message d'erreur.
Si vous insistez sur le désaccord avec la documentation, c'est votre choix.
Cette réponse ne s'applique plus, voir ma réponse avec la mise à jour de l'état ici.
Merci pour la mise à jour de réponse sur ce, j'ai inclus de nouvelles informations dans ma réponse.
OriginalL'auteur Xan
Copié à partir de ma réponse à une question similaire ici. Pour les versions récentes de Chrome (46+) la réponse actuelle n'est plus vrai.
unsafe-inline
encore n'a aucun effet (à la fois le manifeste et dansmeta
balises d'en-tête), mais par la la documentation, vous pouvez utiliser la technique décrite ici pour se détendre la restriction.Prenons comme exemple:
manifeste.json:
background.html:
Résultat:
J'ai aussi testé de mettre la directive applicable dans un
meta
tag au lieu de le manifester. Alors que le CSP est indiqué dans le message de la console n'inclut pas le contenu de la balise, il ne serait pas exécuter le script inline (dans Chrome 53).nouveau background.html:
Résultat:
<a href="javascript:void(0)">Hello</a>
. J'ai essayérRMdkshZyJlCmDX27XnL7g3zXaxv7ei6Sg+yt4R3svU=
et97l24HYIWEdSIQ8PoMHzpxiGCZuyBDXtN19RPKFsOgk=
avec pas de chance.la solution à l'aide de
manifest.json
a fonctionné pour moi; la balise meta version ne fonctionne pas.OriginalL'auteur Chris Hunt
J'ai eu ce problème après j'ai ajouté un simple case à cocher sur la page de connexion de passe à bascule la visibilité et voici comment j'ai réglé mon problème, j'espère que ça aide;
ce problème dans le mode navigation privée de chrome et ont plutôt donné une id
ma case.
Avant
Après
la poignée de l'événement onclick de ma case pour faire le travail.
N'oubliez pas de faire référence à votre fichier js, si vous ne l'avez pas, encore. Vous pouvez simplement référence à elle comme ça.
Et voici l'écouteur d'événement que j'ai ajouté dans mon Script.js.
Erreur avant de le fixer;
OriginalL'auteur Nurhak Kaya