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:
- El usuario inicia sesión (el foro no el cliente de chat)
- 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)
- El token también se guarda en una base de datos MySQL, junto con el ID de usuario
- 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
- 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