net mvc example crear asp and security websocket

security - mvc - Autenticación de WebSockets



sms asp net mvc (2)

¿Cuáles son las formas posibles de autenticar al usuario cuando se usa la conexión websocket?

Escenario de ejemplo: aplicación de chat multiusuario basada en web a través de conexión de websocket encriptada. ¿Cómo puedo garantizar (o garantizar) que cada conexión en esta aplicación pertenece a cierto usuario autenticado y "no puede ser" explotada por suplantación de usuario falsa durante la conexión.


SSL / TLS se puede usar para autenticar tanto al cliente como al servidor utilizando certificados X.509. Depende de la plataforma de aplicaciones web que esté utilizando. En apache, la variable de entorno SSL_CLIENT_CERT se puede verificar por su validez contra una lista de certificados conocidos para que sea válida. Esto no requeriría el uso de una PKI completa, y no requeriría que usted compre certificados para cada cliente. Aunque recomiendo usar una CA para respaldar el certificado ssl de tu servidor.


Si ya está haciendo la autenticación para la parte que no es de websocket de su aplicación, solo pase la cookie de sesión como el primer mensaje después de conectarse y verifique la cookie como lo haría normalmente.

ADVERTENCIA: Se ha señalado que lo siguiente no funciona cuando se usan tarjetas de expansión:
Si usa socket.io , es aún más fácil: las cookies se transfieren automáticamente al conectarse y se puede acceder de la siguiente manera:

var io = require(''socket.io''); var socket = io.listen(app); socket.on(''connection'', function(client){ cookies = client.headers[''cookie'']; });