Il problema principale è che le password errate devono essere archiviate in un modo che consenta loro di essere visualizzate in seguito agli utenti. Che, come ha sottolineato il tuo dev, significa che non possono essere prima crittografati con hash. Il risultato è che li memorizzi come testo normale (non valido) o crittografato (meglio ma non normalmente consigliato).
Il più grande rischio è se questo database di password non valide diventa accessibile agli aggressori. O compromettono il server, eseguono l'iniezione SQL o lo recuperano in altro modo. Piuttosto che infrangere le password primarie, che si spera siano strongmente hash e quindi obiettivi più difficili, potrebbero decidere di compromettere gli account usando le informazioni nella cronologia delle password non valide. O accedono facilmente alle password in chiaro, oppure tentano di trovare la chiave di crittografia che consente loro di decifrare di nuovo le password in chiaro.
Una fonte comune di errori di accesso è un errore di battitura durante la procedura di immissione della password. Quindi la mia password è Muffins16 ma inserisco mUFFINS16 perché il mio blocco maiuscolo è attivo. O Muffins166 perché ho colpito la stessa chiave due volte. O Muffina16 perché il mio dito ha colpito la chiave sbagliata. Come puoi vedere queste variazioni sono abbastanza vicine all'originale che gli autori di attacchi possono probabilmente determinare la password valida da password non valide provando alcune piccole modifiche o confrontando password errate con parole o nomi di dizionario probabili.
Questo problema è aggravato dal fatto che molte persone utilizzano le scelte di password simili a questi formati e non stringhe casuali. È più difficile per un utente malintenzionato identificare l'errore di battitura se la tua password non valida è V8Az $ p4 / fA, anche se è ancora più facile provare varianti di questo, quindi indovinarlo senza alcuna informazione.
Un altro rischio è che gli utenti non ricordino quale delle loro password hanno usato su questo sito in modo che provino quelli comuni. Ora questo sito è in qualche modo un obiettivo più grande perché un utente malintenzionato potrebbe non solo compromettere l'account di un utente lì, ma anche su altri siti con l'utile elenco di password "non valide".
È possibile attenuare alcuni di questi rischi cancellando la memoria delle password non valide immediatamente dopo la visualizzazione dopo un accesso valido. Ciò dovrebbe limitare la finestra di opportunità per un utente malintenzionato di accedere e trarre vantaggio dai dati.
La domanda che dovresti probabilmente chiedere al tuo cliente è come prevedono che gli utenti trarranno vantaggio dalla visualizzazione delle password non valide. È così che gli utenti possono identificare come hanno digitato in modo errato la loro password? Gli errori di battitura non sono intenzionali, quindi non è probabile che mostrare loro l'errore migliorerà i tentativi di accesso futuri. Quindi gli utenti possono identificare un utente malintenzionato che cerca di indovinare le proprie password? Commenti simili possono essere forniti elencando data, ora, IP / geolocalizzazione o altre informazioni per tentativi non validi senza la password tentata. Quindi gli utenti sanno che si sono rovinati durante l'immissione della password e non incolpano il sistema di login del sito? Questo sembra l'unico con merito e non sono sicuro che fornisca un valore sufficiente per giustificare il rischio.
La mia ipotesi è che una volta capito meglio cosa stanno cercando di ottenere con questa funzione, probabilmente potresti suggerire alternative più sicure.