Esta pregunta está relacionada con esto pregunta pregunté
Para resumir, estoy jugando con websockets en este momento y estoy tratando de entender cómo autenticar a un cliente que se conecta al servidor mediante una conexión websocket.
En una conexión normal, uso la autenticación basada en token, básicamente obtengo un token del servidor después de iniciar sesión. Cada vez que hago una solicitud al servidor, la coloco en un encabezado personalizado llamado Autenticación que mi servidor Lo lee desde allí.
Con websockets, esto no funciona porque los websockets no tienen encabezados personalizados. Me quedan dos opciones para pasar este token.
1) poner el token en la cadena de consulta, obviamente no es una gran opción. El token puede ser registrado por el servidor, etc.
2) poner el token en una cookie: esto funciona pero solo cuando el cliente y el servidor se encuentran en el mismo dominio. También hay otras restricciones, como el cliente tiene que ser un navegador y cookies de soporte, etc.
De todos modos, la otra pregunta es tratar de encontrar una solución, esta pregunta es acerca de entender por qué esto es un problema. ¿Por qué websockets no admite encabezados personalizados? Es poco probable que sea un descuido: los websockets y la autenticación basada en token son tecnologías bastante maduras. ¿Existe algún tipo de problema de seguridad al permitir encabezados personalizados durante la conexión de websocket?