Chciałbym używać WebSockets do komunikacji między procesami dla mojej aplikacji (Daemon <-> WebGUI i Daemon <-> FatClient itp.). Podczas testów próbowałem połączyć się z moim lokalnie działającym serwerem sieciowym (ws: // localhost: 1234) za pośrednictwem klienta JavaScript WebSocket na websocket.org ( http://www.websocket.org/echo.html ).
Moje pytanie brzmi teraz:
dlaczego jest to możliwe? Czy w przeglądarkach nie ma zaimplementowanych zasad dotyczących różnych źródeł (tutaj: FF29 w systemie Linux)?
Pytam, ponieważ gdyby websocket.org był zły, mógłby próbować komunikować się z moim lokalnym serwerem WS i przekierowywać każdą wiadomość, którą otrzymuje z lokalnego hosta na inny serwer:
Lokalny serwer WebSocket Zły serwer sieciowy
pod adresem ws: // localhost: 1234 pod adresem http: //evil.tld
| | |
| | ------ [GET /] ---------> |
| | <----- [HTML + EvilJS] ---- |
| <------ [connect ws: // ..] ---- | |
| <---- [trochę komunikacji] -> | |
| | ---- [zło naprzód] ----> |
| | |
Nie testowałem całego przypadku użycia, ale połączenie z ws: // localhost z JS dostarczonego przez websocket.org zdecydowanie działa.