¿Es esta una forma segura de identificar a los usuarios que se conectan a un servidor de chat?

2

Antes de comenzar, toda la información pasará por HTTPS.

Entonces, mi sitio web es básicamente como un foro con la parte de autenticación terminada y funcionando. Este foro tiene una aplicación de chat en tiempo real que envía y recibe información de un servidor Node.js. Quiero que las personas solo puedan enviar información si han iniciado sesión, y solo desde su cuenta.

Así que estoy planeando hacerlo de esta manera:

  1. El usuario inicia sesión (el foro no el cliente de chat)
  2. PHP establece una cookie con un token de seguridad que es una cadena HEX generada aleatoriamente (mediante la función mcrypt_create_iv, con una longitud aleatoria entre 15 y 22 caracteres)
  3. El token también se guarda en una base de datos MySQL, junto con el ID de usuario
  4. Cuando el usuario envía un mensaje a través del chat, también se enviará su ID de usuario, junto con su token de seguridad
  5. El servidor Node.js comparará el token de seguridad en la base de datos con el ID de usuario, y si coinciden, el usuario podrá chatear

¿Es este un buen esquema de seguridad? Si no, ¿por qué y cómo puedo mejorarlo? Gracias

    
pregunta fiction 22.08.2014 - 14:23
fuente

1 respuesta

4

Debe asegurarse de que su token de sesión sea aleatorio y de al menos 128 bits. Aparte de eso, básicamente solo envías un token de sesión y una identificación de usuario. Para ser justos, solo se necesita su token de sesión para identificar a un usuario, ya que es único. Asegúrese también de destruir el token de sesión después de que el usuario cierre la sesión. Aparte de eso, parece similar a cualquier otro esquema de inicio de sesión.

    
respondido por el Lucas Kauffman 22.08.2014 - 17:50
fuente

Lea otras preguntas en las etiquetas