Il mio sito web contiene 2 funzioni:
- Permetti a un utente di cambiare la propria password
- Permetti a un amministratore di cambiare la password di un utente (l'utente deve cambiare nuovamente prima di accedere)
Ora diciamo che esiste un requisito aziendale che stabilisce che a un utente non è consentito riutilizzare una password precedente.
In 1, è corretto restituire un messaggio "Non è possibile riutilizzare una password precedente", a condizione che l'utente si sia autenticato correttamente con la sua password corrente.
In 2, ho bisogno di prevenire la fuga di informazioni. L'amministratore non deve ricevere informazioni sulla password precedente di un utente. L'ho implementato restituendo un messaggio generico "Invalid password". Tuttavia penso che un utente intelligente possa ancora capire che se viene restituito un messaggio "Password non valida" per una stringa perfettamente valida, allora sta succedendo qualcos'altro.
C'è un modo per aggirare questo o sono semplicemente troppo meticoloso? Il mio primo pensiero è che la soluzione è rimuovere 2 e aggiungere una funzione di reimpostazione della password.
EDIT - Penso che ci sia un po 'di fraintendimento del problema. Il problema è che l'utente potrebbe aver usato una delle password precedenti su un altro sito (es .: Bank). Pensando un po 'di più a questo, non sono sicuro di quanto sia più problematica la fonte di fuga di "modifica di un'altra password utente" rispetto a qualcuno che sta semplicemente cercando di forzare il modulo di accesso principale ...