Mysql
 sql >> Base de données >  >> RDS >> Mysql

blocage de la connexion après X tentatives infructueuses

Vous avez besoin de ce qu'on appelle une fenêtre de tentative de mot de passe.

Fondamentalement 2 champs dans la base de données, un LastPasswordAttempt (datetime) et PasswordAttemptCount (int)

Ensuite, à chaque connexion, vérifiez quand le dernier LastPasswordAttempt s'est produit et s'il a eu lieu dans les 10 dernières minutes - incrémentez le PasswordAttemptCount, sinon réinitialisez-le à 0 (ou 1 car ils viennent d'échouer).

Dans la même logique, vérifiez si PasswordAttemptCount est égal à 5 ​​ou plus, si c'est le cas - refusez l'accès de l'utilisateur. Vous pourriez avoir un 3ème champ qui les verrouille pendant quelques heures ou une journée.

c'est-à-dire CanLoginAfter(datetime) que vous pouvez définir sur un jour à partir de la dernière tentative de mot de passe.

J'espère que cela vous aidera