Chrome Extension - Content-Security-Policy - ausführen von inline-code
Bin ich mit einer externen JavaScript-lib, die in meinem chrome-Erweiterung.
Ich habe die inline-Ausführung, so bekomme ich folgende Fehlermeldung
(Den Fehler bekomme ich auf der Konsole)
Verweigerte die Ausführung von JavaScript-URL, da Sie gegen die folgende
Content Security Policy Richtlinie: "script-src 'self'
chrome-extension://". Entweder die 'unsafe-inline' - Schlüsselwort, wird ein hash
('sha256-...'), oder eine nonce ('nonce-...') ist erforderlich, damit die inline -
Ausführung.
Die Fehlermeldung klar sagt, es ist ein work-around möglich.
Chrom-Content-Security-Policy sagt, nicht möglich. Viele Verwandte Frage zitiert diesen link.
Blog Diese blogger sagt, es ist möglich, aber wahrscheinlich gilt das nur für ältere chrome-Erweiterung.
Jeder umgehen möglich?
PS: will nicht/kann es nicht ändern, die gesamte Bibliothek, die ich verwende.
BEARBEITEN: Verwendung von hash-oder nonce zu ermöglichen inline-Ausführung.
- Ähnliche Fragen gestellt wurden, aber ich denke, etwas versäumt wurde.
- bitte geben Sie uns den code erstellen Fehler
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, das ist nicht möglich, sich zu entspannen dieser Politik.unsafe-inline
explizit ignoriert wird von Chrome-Erweiterungen da die manifest version 2.Dokumentation (Hervorhebung von mir):
Fehlermeldung erwähnt mehrere Möglichkeiten, aber die Dokumente sind so klar, dass keine CSP ermöglichen inline-scripting, und ignorieren
unsafe-inline
ist aber eine der Maßnahmen.Update
Sehen diese Antwort für ein mehr in Tiefe Blick auf das whitelisting.
unsafe-eval
), aber was die Chrome-Erweiterungen können in einem CSP ist schmaler als die Allgemeine CSP-spec.Kopiert aus meiner Antwort auf eine ähnliche Frage hier. Für den letzten Versionen von Chrome (46+) die aktuelle Antwort ist nicht mehr wahr.
unsafe-inline
hat immer noch keine Wirkung (in der manifest-und inmeta
header-tags), aber pro die Dokumentation, können Sie die Technik beschrieben hier zu entspannen Einschränkung.Als Beispiel:
manifestieren.json:
background.html:
Ergebnis:
Habe ich auch getestet Inbetriebnahme der geltenden Richtlinie in einem
meta
- tag anstelle des manifests. Während die CSP angegeben in der Konsole die Nachricht hat den Inhalt des Tags, es würde nicht ausgeführt inline-Skript (in Chrom 53).neuen background.html:
Ergebnis:
<a href="javascript:void(0)">Hello</a>
. Ich habe versuchtrRMdkshZyJlCmDX27XnL7g3zXaxv7ei6Sg+yt4R3svU=
und97l24HYIWEdSIQ8PoMHzpxiGCZuyBDXtN19RPKFsOgk=
mit kein Glück.manifest.json
für mich gearbeitet; die meta-tag-version nicht funktioniert.Habe ich das problem, nachdem ich fügte hinzu, ein einfache checkbox auf der login-Seite zu wechseln Passwort Sichtbarkeit und hier ist, wie ich mein problem behoben, hoffe es hilft;
dieses problem in den Inkognito-Modus von chrome und stattdessen gab eine id zu
meine checkbox.
Vor
Nach
handle onclick event meiner Kontrollkästchen, um die Arbeit zu tun.
Erinnern, verweisen Sie Ihre js-Datei, wenn Sie noch nicht, noch nicht. Sie können einfach darauf verweisen, wie diese.
Und hier ist der Ereignis-listener, die ich Hinzugefügt habe, in mein Script.js.
Fehler vor dem Update;