Я хотів би використовувати WebSockets для міжпроцесорного зв'язку для мого додатка (Daemon <-> WebGUI та Daemon <-> FatClient тощо). Під час тестування я спробував підключитися до мого локально запущеного сервера веб-сокетів (ws: // localhost: 1234) через клієнт JavaScript WebSocket на веб- сайті websocket.org ( http://www.websocket.org/echo.html ).
Моє запитання зараз:
Чому це можливо? Чи не реалізована політика перехресного походження у браузерах (тут: FF29 на Linux)?
Я запитую, тому що якщо websocket.org був злим, він міг спробувати зв’язатися з моїм локальним сервером WS і перенаправити кожне повідомлення, яке він отримує від localhost, на будь-який інший сервер:
Локальний веб-сервер WebSocket Browser Evil Web Server
на ws: // localhost: 1234 на http: //evil.tld
| | |
| | ------ [GET /] ---------> |
| | <----- [HTML + EvilJS] ---- |
| <------ [підключити ws: // ..] ---- | |
| <---- [деяке спілкування] -> | |
| | ---- [злий вперед] ----> |
| | |
Я не перевірив весь варіант використання, але підключення до ws: // localhost з JS, поставленого websocket.org, безумовно, працює.