2011-09-16 14 views
10

Me pregunto cómo puedo asegurar mi conexión de socket.io con el servidor desde la siguiente.Problemas de seguridad de Socket.io

Problemas de seguridad:

  • Lo dejaría de usuarios maliciosos se conecte al servidor de un conector mediante código del lado del cliente?

Ejemplo:

OUTSIDE DOMAIN REQUEST var socket = io.connect('http://Mydomain', {port: 4000}); 
  • Los usuarios pueden crear, aparentemente miles de conexiones simultáneas con sólo abrir una ventana del navegador diferente.

¿Cómo puedo evitar estos problemas?

+0

vistazo a https://github.com/LearnBoost/socket.io/wiki/Authorizing e inspeccionar la dirección del usuario (ip) y solicitud de encabezado a través de socket.handshake o autorizar global –

Respuesta

5

Debería poder verificar en el servidor que la referencia de HTTP es correcta. Verifique la especificación socket.io para obtener información tanto sobre referencias HTTP como sobre handshaking.

https://github.com/socketio/socket.io-protocol

También 0.8 tiene verificación de referencia. Havent usado antes, pero esto puede ser un lugar para empezar a buscar:

https://github.com/LearnBoost/socket.io/pull/481

+0

Gracias, pero ¿y si hay múltiples conexiones del mismo usuario? – Trevor

0

Bueno, si sus clientes (reales) provienen de una ubicación bien conocida, probablemente quiera bloquear a todos los demás en el nivel de firewall. Suponiendo que su servicio esté disponible para todos, probablemente pueda considerar el mecanismo de saludo de cliente a servidor.

Cuestiones relacionadas