content-security-policy meta-tag für die Ermöglichung der web-socket
Situation: autoreload von phonegap serve
blockiert von content-security-policy meta-tag
Hinzufügen von content-security-policy verhindert, dass auto-reload von phonegap serve
- Dienstprogramm. Diese baut auf cordova serve
aber auto-lädt die app auf die Bearbeitung der Dateien. Es funktioniert durch die Injektion socket.io
im index.html
. Was soll ich angeben, in meinem CSP-meta-tag, was zulassen wird die socket-verbindungen auf meinem laptop.
Hier ist meine aktuelle CSP-meta-tag:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 192.168.0.100 * ws:* ; connect-src ws://192.168.0.100 ws:*">
Jedoch auf öffnen, das Gerät zeigt "Connecting to device" und nicht-Ereignis empfangen wird, auf dem Gerät.
Beachten Sie auch, dass es beginnt zu arbeiten auf die Beseitigung dieser meta-tag, was bedeutet, die cordova-plugin-whitelist
möglicherweise nicht blockiert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen, web-sockets, um die Sicherheitspolitik, die Sie hinzufügen des web socket-Protokoll (ws:) mit der connect-src-Direktive.
Optional, Sie können hinzufügen die ws: - Protokoll auf der default-src und weglassen connect-src. Hier ist ein gutes Beispiel, das es ermöglicht, die meisten der lokalen Entwicklung benötigt, während immer noch nützlich, Sicherheits-Einschränkungen.
In der Dokumentation für content security policy ist überraschend gut und leicht zu Lesen.
Wenn Ihr websocket-URL ist auf den gleichen Ursprung haben, dann werden beide
connect-src 'self'
oderdefault-src 'self'
SOLLTE ausreichend sein - vorausgesetzt, dass Browser implementiert haben, die änderungen da die CSP-spec-änderungen in https://github.com/w3c/webappsec-csp/issues/7 (PR).Hatte ich ein ähnliches Problem. Diese Effekte Cordova 5.x.x. Siehe diesen blog-Eintrag von Nic Raboy https://blog.nraboy.com/2015/05/whitelist-external-resources-for-use-in-ionic-framework/
Hatte ich Sie optimieren die meta-Tags ein bisschen, um meine websocket-Verbindung als gut. Hier ist, wie das aussieht;
script-src * 'unsafe-inline' 'unsafe-eval'