Sin Cerrar Sesión en Todos los Dispositivos
No ofrecer una opción de 'cerrar sesión en todos los dispositivos' deja sesiones activas en dispositivos robados u olvidados indefinidamente.
Cómo Funciona
Los usuarios cambian contraseñas después de una supuesta brecha, pero si el token de sesión del atacante no es revocado, sigue conectado. De igual forma, un dispositivo robado o una computadora compartida con una sesión olvidada permanece accesible hasta que el token expire naturalmente — lo cual podría ser meses.
// MAL: el logout solo limpia la sesión del dispositivo actual
async function logout(sessionToken: string) {
await db.sessions.delete({ token: sessionToken }); // solo esta sesión
}// BIEN: opción para revocar todas las sesiones de un usuario
async function logoutAllDevices(userId: string) {
await db.sessions.deleteMany({ userId }); // revoca todas las sesiones activas
}
// Activa esto automáticamente cuando el usuario cambia su contraseñaEjemplo Real
Varias brechas de datos se prolongaron porque las víctimas cambiaron sus contraseñas pero no invalidaron las sesiones activas del atacante. WhatsApp y los principales bancos han recibido críticas por no proporcionar funcionalidad de 'cerrar sesión en todos los dispositivos'.
Cómo Prevenirlo
- Provee un botón 'cerrar sesión en todos los dispositivos' en la configuración de la cuenta
- Revoca automáticamente todas las sesiones cuando se cambia una contraseña
- Muestra a los usuarios una lista de sesiones activas con tipo de dispositivo, ubicación y última actividad
- Establece una vida útil máxima de sesión (por ejemplo, 30 días) para que las sesiones viejas expiren automáticamente
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Sin Política de Contraseñas
mediumAceptar cualquier contraseña — incluyendo '123' o 'a' — hace las cuentas de usuarios trivialmente vulnerables a credential stuffing y ataques de fuerza bruta.
Sin Rate Limit en Login
mediumUn endpoint de login sin rate limiting puede ser forzado por fuerza bruta miles de veces por segundo hasta encontrar una contraseña válida.
Sin MFA/2FA
lowSin autenticación multifactor, una contraseña robada o adivinada es todo lo que se necesita para comprometer completamente una cuenta.
Sin Verificación de Email
mediumPermitir cuentas con email no verificado deja que atacantes se registren con la dirección de email de otra persona, potencialmente bloqueándolos o suplantándolos.