2016-06-11 20 views
0

Ich betreibe eine PHP-Website (www.mywebsite.com). Jetzt möchte ich eine Echtzeit-Chat-Funktion hinzufügen, damit Benutzer mit anderen chatten können.socket.io JWT mit PHP

Ich entschied mich, node.js und socket.io in einem anderen Server getrennt von Webserver (chat.mywebsite.com) zu laufen.

Benutzer, die die Chatfunktion verwenden möchten, müssen sich über www.mywebsite.com anmelden. Nach dem Login werden sie auf eine Chat-Seite gesendet (www.mywebsite.com/chat). Auf dieser Seite muss der Client also eine Anfrage an den Web-Server für ein JWT senden und diese JWT verwenden, um sich in socket.io zu authentifizieren.

Meine Frage ist: Wenn der JWT von jemand anderem gestohlen wird und den JWT zu socket.io übergeben, wird es auf jeden Fall den Server fälschen, dass der Benutzer authentifiziert ist. Ist dieser Ansatz korrekt oder können Sie eine andere Methode für meine Situation vorschlagen? Vielen Dank!

Antwort

1

Wenn jemand Zugang für einen JWT Token hat - sie entführte im Grunde seine Sitzung, https://en.wikipedia.org/wiki/Session_hijacking

Solange Sie nicht über XSS oder anderen vulns auf Ihrer Website, es sollte nicht etwas sein, Sie kümmern sollen .

Stellen Sie sicher, dass die socket.io den Benutzer authentifiziert, indem Sie den jwt-Token verwenden, bevor Sie ihn Nachrichten senden/empfangen lassen.