¿Dónde almacenar los bashs de inicio de sesión y el estado actual de inicio de sesión, las cookies o las sesiones?

Nota: esta pregunta es sobre dónde almacenar los bashs de inicio de sesión y el estado actual de inicio de sesión .

Estoy construyendo una aplicación web en la que se requerirá que los usuarios se registren para adquirir detalles de autenticación para usar al iniciar sesión en el sistema, pero soy totalmente novato en seguridad.

Y quiero que un usuario inicie sesión solo una vez por sesión, por lo que un usuario no debe tener más de una autenticación exitosa existente, es decir, no puede iniciar sesión desde la computadora a y la computadora b al mismo tiempo o cuando ya ha realizado una autenticación exitosa del mismo usuario existe o no se ha cerrado la sesión.

Creo que necesito hacer un seguimiento de la ubicación del usuario, iniciar sesión y el estado de inicio de sesión actual; para actuar en consecuencia. Estoy buscando su consejo sobre qué usar entre las cookies y las sesiones, cómo hacer un seguimiento de la ubicación del usuario y más sugerencias son bienvenidas.

Gracias de antemano.

Ninguno de esos.
Debe emplear una base de datos para satisfacer sus necesidades.
Debe almacenar la identificación de sesión actual, los bashs de inicio de sesión y el estado de inicio de sesión en la base de datos.
No sé qué es la ubicación.

Si bien las cookies deben usarse para la autorización en sí, para transferir la identificación de la sesión entre un servidor y un cliente.

Por lo que sé, no puede rastrear y comparar sesiones en el servidor para verificar conexiones activas para el mismo usuario “autenticado”. Supongo que hace un seguimiento de su nombre de usuario y contraseña en la base de datos, y luego, una vez que se autentican, establece una variable de sesión para rastrear su inicio de sesión actual en un dispositivo de usuario final dado.

La mejor manera que me puedo imaginar (aparte de fallas técnicas regulares de desconexiones, usuarios que no cierran sesión, etc.) sería tener una tabla en su base de datos para rastrear los inicios de sesión y el estado:

  • Identidad de usuario
  • Dirección IP (extraída de los encabezados / navegador)
  • última marca de tiempo de inicio de sesión (UTC)
  • Estado de inicio de sesión actual (booleano)
  • Último valor de sesión de servidor conocido

Una vez que esté en su lugar, puede crear contingencias:

  • Conécteme desde un dispositivo conectado si me autentico exitosamente en otro lugar haciendo que el servidor destruya la sesión almacenada en la base de datos y la reemplace con la sesión activa del nuevo dispositivo
  • verificar la dirección IP luego de la autenticación y bloquear al usuario, o usar el método anterior para cerrar la sesión remota

Tienes la idea, espero.

La principal diferencia entre las cookies y las sesiones es que las cookies se almacenan en el navegador del usuario y las sesiones no. Esta diferencia determina para qué se usa mejor cada uno.

Uno debería ir por las cookies para almacenar algo que queremos saber cuando el usuario regrese a la página web en el futuro (por ejemplo, recuérdame en esta checkbox de la computadora en las páginas de inicio de sesión utiliza cookies para recordar al usuario cuando regrese).
Las sesiones deben usarse para recordar algo para esa sesión de navegador en particular (como el nombre de usuario, para mostrar en cada página o donde sea necesario).

Buena lectura :

  • Por qué probablemente no deberías usar cookies para almacenar datos de sesión