Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

bloqueando o login após X tentativas falhadas


Você precisa do que é chamado de Janela de Tentativa de Senha.

Basicamente 2 campos no banco de dados, um LastPasswordAttempt (datetime) e PasswordAttemptCount (int)

Em seguida, em cada login, verifique quando ocorreu o último LastPasswordAttempt e se foi nos últimos 10 minutos - incremente o PasswordAttemptCount, caso contrário, redefina-o para 0 (ou 1 porque eles acabaram de falhar).

Na mesma lógica, verifique se PasswordAttemptCount é igual a 5 ou mais, se for - negue o acesso do usuário. Você pode ter um terceiro campo que os bloqueia por algumas horas ou um dia.

ou seja, CanLoginAfter(datetime) que você pode definir para um dia a partir da última tentativa de senha.

Espero que isto ajude