sql >> Database teknologi >  >> RDS >> Mysql

blokering af login efter X mislykkede forsøg

Du har brug for det, der kaldes et vindue med adgangskodeforsøg.

Grundlæggende 2 felter i databasen, et LastPasswordAttempt (datetime) og PasswordAttemptCount (int)

Så ved hvert login skal du kontrollere, hvornår det sidste LastPasswordAttempt fandt sted, og om det har været inden for de sidste 10 minutter - forøg PasswordAttemptCount, ellers nulstil det til 0 (eller 1, fordi de lige har fejlet).

I samme logik skal du kontrollere, om PasswordAttemptCount er lig med f.eks. 5 eller mere, hvis det er - nægt brugeren adgang. Du kunne have et 3. felt, som låser dem ude i et par timer eller en dag.

dvs. CanLoginAfter(datetime), som du kan indstille til en dag fra sidste adgangskodeforsøg.

Håber dette hjælper



  1. SQL OPDATERING alle værdier i et felt med tilføjet streng CONCAT virker ikke

  2. Hvordan indstilles værdi til variabel ved hjælp af 'execute' i t-sql?

  3. Ufanget undtagelse 'PDOException' med beskeden 'Der er ingen aktiv transaktion'?

  4. FILE_ID() vs FILE_IDEX() i SQL Server:Hvad er forskellen?