Pourquoi n'est-il pas de même de la politique d'origine pour les WebSockets? Pourquoi je peux me connecter ws://localhost?

Je voudrais utiliser les WebSockets pour la communication inter-processus pour mon application (Démon<->WebGUI et le Démon<->FatClient, etc.). Pendant le test, j'ai essayé de la connexion à mon localement web serveur socket (ws://localhost:1234) via le JavaScript client WebSocket sur websocket.org (http://www.websocket.org/echo.html).

Ma question maintenant est:

Pourquoi est-ce possible? N'est-il pas de la croix-origine de la politique mise en œuvre dans les navigateurs (ici: FF29 sur Linux)?

Je demande car si websocket.org était mal, il pourrait essayer de communiquer avec mon local WS serveur et de rediriger tous les messages qu'il reçoit à partir de localhost vers un autre serveur:

Local Serveur WebSocket Navigateur Mal De Serveur Web 
en ws://localhost:1234 à http://evil.tld 
| | | 
| |------[OBTENIR /]--------->| 
| |<-----[HTML+EvilJS]----| 
|<------[se connecter ws://..]----| | 
|<----[de communication]-->| | 
| |----[le mal de l'avant]---->| 
| | | 

Je n'ai pas testé l'ensemble de cas d'utilisation, mais le connecter à ws://localhost de la JS livrés par websocket.org certainement œuvres.

  • websocket.org ne doit pas être mal, Web sockets peut être 😉