2017-01-02 5 views

Antwort

1

Vom Websocket protocol specification:

A wss URI identifiziert einen WebSocket-Server und Ressourcennamen und zeigen an, dass der Verkehr über diese Verbindung geschützt werden soll über TLS (einschließlich Standard Vorteile von TLS wie Datenvertraulichkeit und Integrität und Endpunktauthentifizierung).

Emphasis Mine

Jetzt können Sie die Absurdität Ihrer Anfrage verstehen: WSSisthttps.
Natürlich ist die Terminologie falsch ist (https ist ein anderes Protokoll als WSS), aber der Boden der Linie ist, dass beide einfach die Version ihrer jeweiligen TCP Ebene Protokolle (http und ws) über TLS.

Also die Antwort ist keine.


In der Tat ist Sicherheit eine komplexe Sache.
Sehr erfahrene Programmierer verzichten darauf, neue Wege zu erfinden oder zu erforschen und basierend auf der Art der Frage, die Sie gestellt haben, scheinen Sie kein Experte auf diesem Gebiet zu sein.

So ist es besser, Dinge zu tun, wie Best Practices sagen, es sagen, sie „https“ Verwendung „https“ zu verwenden.

Es ist ratsam, ernsthaft mit dem Thema Sicherheit zu beginnen (oder einen Auftragnehmer zu beauftragen), neue Wege für die sichere Authentifizierung zu finden, es sei denn, Sie haben einen Doktortitel in abstrakter Algebra und mehrjährige Erfahrung in der Entwicklung kryptographischer Schemata.

+1

nicht einverstanden: während https und wss sind eng verwandt und müssen zusammen verwendet werden, um ihre Sicherheitsvorteile zu erhalten, gibt es in der Theorie keinen Grund, dass es nicht möglich sein sollte, nur das eine oder das andere zu verwenden, und tatsächlich habe ich gerade angetroffen ein Anwendungsfall, in dem es nützlich ist (um Fehler zu debuggen, die von einer wss-Bibliothek verursacht werden können). Für die Anfrage des Fragestellers könnte ich mir ein Szenario vorstellen, bei dem die http-Seite über andere Mittel gesichert ist (d. H. Von localhost bedient wird). Es ist schwierig, den verwendeten kryptografischen Algorithmus zu verstehen. Es ist jedoch sehr einfach zu verstehen, welche Teile Ihrer Site gesichert sind oder nicht. – Brilliand

+1

@Brilliand Vielleicht sehen wir die Frage auf unterschiedliche Weise, weil hier kein Interpretationsspielraum besteht: wss ** ist ** https. Sie müssen also die gesamte https-Maschine einrichten, um sie zu verwenden. Auch in Ihrer Antwort verwenden Sie https. Das OP spricht über * Einrichten * eines Servers, nicht über * gemischte Inhalte * –

+1

Hmm, das ist eine vernünftige Interpretation. Aber wie Sie sagten, ist die Terminologie falsch: * https * und * wss * sind separate Dinge, die beide von SSL/TLS abhängen (was der schwierige Teil ist). Ich nahm an, dass er keinen Terminologiefehler gemacht hat, aber Sie haben wahrscheinlich recht, dass das, was er wirklich vermeiden möchte, das SSL-Zertifikat ist. – Brilliand

1

Ja, das ist möglich. Um dies zu tun, geben Ihre websocket URL zum socket.io Client direkt, wie folgt aus:

var socket = io('wss://example.com/'); 

Beachten Sie, dass dies umgekehrt nicht möglich ist: während es gibt nichts, HTTP-Seiten zu verhindern, dass WSS Verbindungen zu schaffen, die meisten Browser blockieren heute jede WS-Verbindung von einer HTTPS-Seite, um die erhöhte Sicherheit zu erzwingen.

Ich würde auch warnen, dass ein Websocket über WSS geöffnet ist immer noch nicht sicherer als die Seite, aus der es stammt. Wenn Sie WSS für seine Sicherheitsvorteile verwenden, sollten Sie darauf achten, dass diese Sicherheit nicht beeinträchtigt werden kann, wenn ein Angreifer Ihre Seite zum Zeitpunkt des Ladens außer Kraft setzt (was HTTPS verhindern würde).

+0

OK, jetzt habe ich ein Problem, ich weiß nicht, wen ich als Antwort geben soll, beide Antworten klingen richtig, aber mein Mangel an Wissen zu diesem Thema schränkt mich ein, die richtige Wahl zu treffen. –

+1

@KitangaNday Ich schlage vor, Margarets Antwort zu akzeptieren, weil sie geantwortet hat, was tatsächlich für Ihre Situation gilt: Sie können WSS nicht ohne ein SSL-Zertifikat haben. Meine Antwort ist technisch korrekt, aber für Sie nutzlos. – Brilliand

+0

Kein Problem, danke für diese Klarstellung. –

Verwandte Themen