sql >> Databasteknik >  >> RDS >> Mysql

blockerar inloggning efter X misslyckade försök

Du behöver det som kallas ett lösenordsförsöksfönster.

I princip två fält i databasen, ett LastPasswordAttempt (datumtid) och PasswordAttemptCount (int)

Sedan vid varje inloggning, kontrollera när det senaste LastPasswordAttempt inträffade och om det har varit under de senaste säg 10 minuterna - öka PasswordAttemptCount, annars återställ det till 0 (eller 1 eftersom de precis har misslyckats).

I samma logik, kontrollera om PasswordAttemptCount är lika med säg 5 eller mer, om det är det - neka användaren åtkomst. Du kan ha ett tredje fält som låser dem ute i några timmar eller en dag.

d.v.s. CanLoginAfter(datetime) som du kan ställa in till en dag från det senaste lösenordsförsöket.

Hoppas detta hjälper



  1. Ignorerar tidszoner helt och hållet i Rails och PostgreSQL

  2. Fråga om aktuellt datum i tid mysql

  3. Hitta orsaken till dödlägesfel från oracle trace-fil

  4. Utforska Postgres datumformat och deras olika funktioner