Skip to content

v1.7.0

Choose a tag to compare

@jandrescodes jandrescodes released this 08 Jun 18:30

Security

  • Account lockout — bloqueo automático de cuenta tras 5 intentos de login fallidos consecutivos (configurable):
    • Nueva tabla login_attempts con identifier como PRIMARY KEY — sin enumeración de usuarios: solo se registran intentos para usernames que existen en DB
    • Operación atómica via INSERT ... ON DUPLICATE KEY UPDATE en SQL — sin race conditions
    • Lógica de bloqueo integrada en App\Core\Auth — lockout se limpia en login exitoso y en reset de contraseña
    • Check de bloqueo antes de verifyCredentials(): contraseña correcta no levanta el bloqueo durante la ventana
    • Mensaje con minutos restantes mostrado al usuario bloqueado
    • Controlado por LOGIN_LOCKOUT_ENABLED, LOGIN_MAX_ATTEMPTS (default 5), LOGIN_LOCKOUT_MINUTES (default 15)

Tests

  • 7 nuevos tests en tests/Unit/LoginAttemptTest.php — operaciones atómicas, normalización, expiración de bloqueo
  • 4 nuevos casos en tests/Integration/AuthTest.php — lockout en Auth, limpieza en reset de contraseña
  • Total: 40 tests

Full Changelog

https://github.com/Jandres25/Encriptacion_PHP/blob/master/CHANGELOG.md