Tengo un servidor WebSocket escrito en javascript y le envío datos desde mi aplicación CSharp. Ahora, ¿cómo puedo asegurarme de que estos son correctos? Pensé que podría hacer algo con valores hash, pero no sé cómo hacerlo. ¿Alguien tiene una idea o un ejemplo de código?
Lo primero que debe comprender son los tipos de protocolo/transporte WebSocket. El transporte WebSocket ws:// es básicamente inutilizable en términos de seguridad, ya que utiliza HTTP. El protocolo wss:// establece una conexión segura sobre TCP/HTTPS. El protocolo wss, por lo tanto, protege contra ataques de intermediarios.
Existen varios métodos para autenticar a un usuario al configurar una conexión WebSocket, y ninguno es perfecto. Dado que el uso estándar de WebSocket evita que se establezcan encabezados adicionales, como encabezados de autenticación personalizados, no se pueden usar métodos probados y verdaderos que se usarían en una solicitud HTTPS estándar para verificar la validez de un cliente.
El enlace aquí describe algunos métodos comunes para mantener el cliente y el servidor sincronizados mientras configura una conexión WebSocket, y aún agrega algo de seguridad para que el servidor pueda realizar un seguimiento de qué clientes están abriendo conexiones WebSocket. Hay muchas soluciones alternativas enumeradas para que el servidor reciba de forma segura datos confidenciales de autenticación del cliente.