So entspannen Sie die Richtlinien zur Inhaltssicherheit in Chrome


17

In letzter Zeit verwenden einige Websites wie Facebook die Content Security Policy (CSP), um das Laden von Skripten aus "nicht vertrauenswürdigen Quellen" zu beschränken. Wenn Sie beispielsweise Facebook-HTML-Inhalte (z. B. https://www.facebook.com ) anfordern , enthält die HTTP-Antwort von Facebook den folgenden Antwortheader:

x-webkit-csp:default-src *;script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl 'unsafe-inline' 'unsafe-eval' https://*.akamaihd.net http://*.akamaihd.net;style-src * 'unsafe-inline';connect-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.spotilocal.com:* https://*.akamaihd.net ws://*.facebook.com:* http://*.akamaihd.net;

Dies hat Auswirkungen auf einige Lesezeichen, die das Laden und Ausführen von Javascript-Bibliotheken aus nicht vertrauenswürdigen Quellen erfordern.

Wenn ich beispielsweise versuche, das Show Anchors- Lesezeichen auf einer Facebook-Seite auszuführen , schlägt die Ausführung dieses Lesezeichens fehl, da versucht wird, jQuery von einer nicht vertrauenswürdigen Quelle zu laden. In der Entwicklerkonsole von Chrome wird Folgendes angezeigt:

Refused to load the script 'http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js' because it violates the following Content Security Policy directive: "script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl 'unsafe-inline' 'unsafe-eval' https://*.akamaihd.net http://*.akamaihd.net".

Ich habe eine Chrome-Dokumentationsseite zu diesem Thema gefunden, die jedoch nur für Chrome- Erweiterungen gilt .

Ich suche nach Lösungen, die es mir ermöglichen

  • entweder für eine einmalige Deaktivierung von CSP
  • oder meine vertrauenswürdigen Quellen dauerhaft auf die weiße Liste setzen.


@Rudie Funktioniert das für Chrome Mobile?
Michael

@Michael Wenn Chrome Mobile moderne Erweiterungen unterstützt. Das WeRequest ist irgendwie neu. Ich verwende kein Chrome Mobile, daher habe ich keine Ahnung.
Rudie

Antworten:


2

Von Chrome Apps unterstützte Methoden

Verwenden Sie Vorlagenbibliotheken

Verwenden Sie eine Bibliothek, die vorkompilierte Vorlagen bietet, und Sie können loslegen. Sie können immer noch eine Bibliothek verwenden, die keine Vorkompilierung bietet, für die jedoch einige Arbeiten erforderlich sind und für die es Einschränkungen gibt.

Sie müssen Sandboxing verwenden, um alle Inhalte zu isolieren, für die Sie "eval" -Dinge ausführen möchten. Sandboxing hebt den CSP für den von Ihnen angegebenen Inhalt auf.

Sandbox lokaler Inhalt

Mit Sandboxing können bestimmte Seiten in einem eindeutigen Sandbox-Ursprung bereitgestellt werden. Diese Seiten sind dann von ihrer Inhaltssicherheitsrichtlinie ausgenommen. Sandbox-Seiten können Iframes, Inline-Scripting und eval () verwenden (und die letzten beiden werden verhindert). Das behebt 'unsafe-inline' und 'unsafe-eval'.

  • Verwenden Sie Inline-Skripte in der Sandbox
  • Sandbox in Manifest aufnehmen

Greifen Sie auf Remote-Ressourcen zu

Sie können Remote-Ressourcen über XMLHttpRequest abrufen und über blob :, data: oder filesystem: URLs bereitstellen. Dies sollte das jQuery-Abrufproblem beheben.

Offensichtliche Anforderung

Um Cross-Origin XMLHttpRequestsausführen zu können, müssen Sie eine Berechtigung für den Host der Remote-URL hinzufügen.

Kreuzherkunft XMLHttpRequest

Rufen Sie die Remote-URL in die App ab und stellen Sie deren Inhalt als blob:URL bereit.


Ich glaube nicht, dass Sie irgendetwas davon machen können. Um die Header unsafe-evalund die unsafe-inlineAntwort zu korrigieren, kann nur der Skriptbesitzer den Code korrigieren, oder wenn er gemeinfrei ist, können Sie ihn korrigieren. All dies ist wahrscheinlich eine einmalige Lösung.


Hacks

UnsafeWindow

http://wiki.greasespot.net/UnsafeWindow

Content Script Injection

http://wiki.greasespot.net/Content_Script_Injection


Die Hacks haben jedoch Nachteile, da sie bekanntermaßen zumindest die erste Sicherheitslücke verursachen, definitiv.


0

Sie können diese Einstellungen auf der Registerkarte Inhalt bearbeiten, auf die Sie direkt zugreifen können, indem Sie chrome://settings/contentin die Adressleiste tippen. Sie können bestimmte Domains für bestimmte Inhaltstypen auf die Whitelist setzen.


8
Wo genau in den Inhaltseinstellungen mache ich das und wie? Ich habe versucht, meine Website zu den "Ausnahmen für Cookies und Websitedaten" hinzuzufügen, ohne dass dies Auswirkungen hat. Keine der anderen Einstellungen scheint relevant zu sein.
Michael
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.