C'è un test semplice per capire se un sito tratta male la tua sicurezza: se al "recupero password" ti rispedisce la vecchia password via email, scappa. Significa che la conserva in chiaro, leggibile. È uno degli errori più gravi (e ancora diffusi) nello sviluppo web.
Perché la password in chiaro è pericolosa
Se le password sono salvate in chiaro, chiunque acceda al database — un dipendente infedele, un attaccante, un backup finito nel posto sbagliato — le legge tutte. E poiché molte persone riusano la stessa password ovunque, il danno si propaga ad altri servizi.
Il "fallback comodo" che diventa una falla
A volte la password in chiaro nasce da una scorciatoia: "teniamola da parte, così possiamo rimandarla se l'utente la dimentica". Quella comodità è esattamente la vulnerabilità. Non esistono fallback accettabili: la password non deve mai essere recuperabile.
Come si fa bene: reset, non recupero
Un sito sicuro non recupera la password: la reimposta. Invia un link temporaneo che permette di crearne una nuova, mentre nel database resta solo un hash irreversibile. Nessuno, nemmeno il gestore del sito, conosce la password.
Il reset è a sua volta una superficie d'attacco
Sostituire il recupero con il reset risolve il problema principale ma ne apre uno nuovo, se il flusso è fatto male. Il token deve essere monouso, casuale e a scadenza breve; la risposta non deve rivelare se l'indirizzo esiste, altrimenti diventa uno strumento per enumerare gli utenti; il tentativo va limitato in frequenza; e al cambio password tutte le sessioni attive vanno invalidate, altrimenti chi era già entrato resta dentro.
Collegato: come si cercano le falle.