2016-06-21 13 views
9

Ich versuche, meine App nach dem Code-Push-Dokument zu implementieren. Ich habe dann die folgende Content-Sicherheit zu meiner App index.html hinzugefügtAbgelehnt, um das Bild zu laden, weil es gegen Content-Security-Richtlinie verstößt - Cordova

<meta http-equiv="Content-Security-Policy" content="default-src https://codepush.azurewebsites.net 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 

sofort ich hinzugefügt, meine App läuft nicht noch einmal. Wenn ich meinen cordova Browser benutze. Ich habe viele Fehler in der Konsole gesehen. Es stellt sich heraus Dateien meine Styles referenziert von Github, meine Bilder referenziert von mysite.com/... und meine andere externe Skripte, sind goopleapis meine Sicherheitspolitik unter

<meta http-equiv="Content-Security-Policy" content="default-src * 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 

es jetzt funktioniert. Meine Frage ist: Was ist die Sicherheitsverzweigung? Sollte ich es so lassen? Wie sollte ich das besser machen? Jede Hilfe oder Meinung wäre willkommen. Ich mache mir Sorgen, dass ich die Angriffe abbrechen darf.

Antwort

5

Sie haben recht, wenn Sie Ihren CSP so lassen, könnte dies einem Angreifer die Arbeit erleichtern. Die Hauptidee hinter der Verwendung eines CSP ist das Whitelisting der URL wie beschrieben here.

Durch Whitelisting mit dem * Wildcard-Code erlauben Sie einem Angreifer, Code von überall zu laden (und auszuführen), sobald er in der Lage ist, Code in Ihre Anwendung zu injizieren. Schau dir den verlinkten Artikel dazu an, es ist viel besser als das, was ich hier schreibe;)

Also, was ist der richtige Weg, dies zu tun?

  1. Finden Sie heraus, welche Domains Sie auf die Whitelist setzen möchten und welche Art von resources diese Domain bietet.
  2. Entfernen Sie die Wildcard und Whitelist genau diese Domänen für genau diese Ressourcen, die Sie benötigen. Werfen wir zum Beispiel einen Blick auf Ihre Stylesheets von GitHub. Sie haben GitHub als vertrauenswürdige Domain, wie dies für Arten etwas hinzuzufügen: style-src 'self' https://github.com 'unsafe-inline';

Hinweis: mit der default-src Politik vorsichtig sein, da es die anderen Richtlinien außer Kraft setzt. Und wenn es darum geht, Bilder auf eine Whitelist, können Sie die data: Keyword hinzufügen haben wie so: img-src 'self' http://somedomain.com data:;

Mozilla's documentation ganz gut ist, wenn Sie sich einen Überblick über alle Politiken und Keywords suchen ...

+0

Die Dokumente sind wirklich hilfreich. Überprüfe sie, ob diese Frage nicht alles beantwortet. –

3

gelöst mit:

script-src 'self' http://xxxx 'unsafe-inline' 'unsafe-eval'; 
+0

Das löste mein Problem beim Laden von Bildern in Cordova + Phaser3 '' – bFunc