Ho un'applicazione web-based in cui gli utenti possono accedere con username e password.
Ho appena implementato una nuova funzionalità di blocco degli account e mi chiedevo se fosse ragionevole o l'ho completamente rovinato.
I primi 3 tentativi di accesso non validi mostrano solo il mio standard:
Incorrect user name or password
ma memorizzo ogni tentativo fallito. Per ogni ulteriore tentativo, blocco l'account per un numero sempre maggiore di secondi e lo mostro all'utente:
The logon failed because your account is blocked due to a previous unsuccessful attempt.
Please wait a 18 seconds and try again.
Se il conteggio degli accessi fallito è maggiore di 10, blocco l'account per 120 secondi, ovvero il tempo di attesa massimo.
Se l'utente corretto ricorda finalmente la password corretta, lei deve aspettare 2 minuti, questo è non male.
Ma un hacker può provare solo una nuova password ogni 2 minuti, che diventa presto noiosa.
Dopo un accesso riuscito, il conteggio errori viene ripristinato a zero.
Tutti i numeri qui sono configurabili.
I problemi:
- Dopo alcuni tentativi, dichiaro che un nome utente è valido, da visualizzare un messaggio diverso, ma potrei disattivarlo e mostra sempre il messaggio standard.
- Se l'utente reale tenta di accedere mentre qualcun altro sta tentando di farlo rompere nel suo account, lei non sarà in grado di accedere, quindi questo è un negazione del servizio. Ma due minuti dopo che l'attaccante si è arreso, può accedere senza dover chiamare l'helpdesk.