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