Det har skrivits väldigt mycket om detta på olika säkerhetsforum tidigare. Kontentan är att du helst inte vill blockera en användare att logga in oavsett vad. Målet kan nämligen vid en "attack" kan vara att hindra en annan användare att logga in och inte nödvändigtvis komma åt sparad information.
Istället för att begränsa en användare logga in, försök göra följande:
- Kräv extra authentisering, via t.ex skicka en engångslöenord via t.ex e-post eller SMS om många inloggningsförsök har nyligen gjorts. Du har troligtvis denna informationen ändå för konto-återställning.
- Lägg till en fördröjning så att om det har skett ett inloggningsförsök nyligen, vänta 5 sekunder innan du utför förfrågan. Eller gör det ännu mer simpelt, gör så varje inloggningsförsök tar minst 1 sekund. Enda syftet är att med detta fördröja en "brute-force".
- Begränsa antalet inloggningsförsök per sekund till N st (beroende på hur många användare du har idag). Syftet är att du ska kunna blockera om någon kör ett program som kontinurligt testar olika användarnamn/lösenord. Du vill inte tillåta att varenda användare kan logga in exakt samtidigt.
Om du tvekar att alltid tillåta användare att logga in, tänk vad t.ex som skulle kunna hända om du var en konkurrent till ett SaaS-företag och de hade den lösningen, att blockera alla inloggningsförsök efter N antal misslyckade försök. Jag kan garantera dig att det skulle vara enkelt att välja ut kund efter kund och få dem "missnöjda" och därefter sälja in din egen lösning