Was sind die Sicherheitsprobleme bei einer offenen Websocket-Verbindung?

9

Ich erstelle eine Anwendung, die Websockets verwendet. Ich werde authentifizierten Benutzern nur erlauben, eine Websocket-Verbindung mit dem Server zu öffnen, nachdem sie sich angemeldet haben und eine Sitzungs-ID erhalten haben.

  1. Sobald ich eine Websocket-Verbindung mit einem authentifizierten Benutzer geöffnet habe, enthält die aktuelle "Seite" die Details der offenen Websocket-Verbindung. Ist diese Verbindung an dieser Stelle relativ sicher? Oder sollte ich wirklich ein Token auf jeder Nachricht innerhalb meines eigenen Protokolls auf Anwendungsebene prüfen, das über den Websocket kommt?

  2. Gibt es bekannte Sicherheitslücken bei Cross-Site-Fälschungen? Wo könnte jemand einen offenen Websocket mitmachen, indem er den authentifizierten Benutzer dazu bringt, etwas Javascript in irgendeiner Weise auszuführen - was dazu führt, dass die offene Websocket-Verbindung ausgenutzt werden kann?

Rocketman 28.04.2013, 19:20
quelle

1 Antwort

4

1) Die Verbindung ist sicher, wenn Sie auf der Serverseite sicher sind. Sie müssen also eine Sitzungs-ID über WebSockets senden, auf der Serverseite verifizieren, dass sie korrekt ist und die Verbindung als gültig markieren. Die Authentifizierung ist mit HTTP schwieriger, da HTTP im Gegensatz zu Raw TCP statusfrei ist. Natürlich ist es immer noch möglich, eine TCP-Verbindung zu entführen, aber es ist nicht so einfach (siehe zum Beispiel diesen Artikel ) und Wenn es passiert, kann Ihnen nichts (außer TLS) helfen.

2) Wenn Sie Ihre WebSocket-Verbindung mit einer anonymen Funktion wie dieser umschließen:

%Vor%

Dann kann kein externes JavaScript darauf zugreifen, so dass Sie sich darüber keine Gedanken machen müssen.

    
freakish 28.04.2013 21:44
quelle

Tags und Links