Das Hauptproblem besteht darin, dass falsche Passwörter so gespeichert werden müssen, dass sie später den Benutzern angezeigt werden können. Was, wie Ihr Entwickler betonte, bedeutet, dass sie nicht zuerst kryptografisch gehasht werden können. Das Ergebnis ist, dass Sie sie entweder als Klartext (schlecht) oder verschlüsselt (besser, aber normalerweise nicht empfohlen) speichern.
Das größte Risiko besteht darin, dass Angreifer auf diese Datenbank mit ungültigen Kennwörtern zugreifen können. Entweder gefährden sie den Server, führen eine SQL-Injection durch oder rufen ihn auf andere Weise ab. Anstatt die primären Kennwörter zu knacken, die hoffentlich stark gehasht und daher härter sind, könnten sie beschließen, Konten mithilfe der Informationen im ungültigen Kennwortverlauf zu kompromittieren. Entweder greifen sie einfach auf die Klartextkennwörter zu, oder sie versuchen, den Verschlüsselungsschlüssel zu finden, mit dem sie wieder in Klartextkennwörter entschlüsseln können.
Eine häufige Ursache für Anmeldefehler sind geringfügige Tippfehler während der Kennworteingabe. Mein Passwort ist also Muffins16, aber ich gebe mUFFINS16 ein, weil meine Feststelltaste aktiviert ist. Oder Muffins166, weil ich zweimal dieselbe Taste gedrückt habe. Oder Muffina16, weil mein Finger die falsche Taste gedrückt hat. Wie Sie sehen können, sind diese Variationen nahe genug am Original, sodass Angreifer das gültige Kennwort wahrscheinlich aus ungültigen Kennwörtern ermitteln können, indem sie einige geringfügige Änderungen vornehmen oder falsche Kennwörter mit wahrscheinlichen Wörter oder Wörtern aus dem Wörterbuch vergleichen.
Dieses Problem ist verschärft, weil die meisten Leute Passwortwahlen ähnlich diesen Formaten und keine zufälligen Zeichenfolgen verwenden. Für einen Angreifer ist es schwieriger, den Tippfehler zu identifizieren, wenn Ihr ungültiges Passwort V8Az $ p4 / fA lautet. Es ist jedoch noch viel einfacher, Variationen davon auszuprobieren, als sie ohne Informationen zu erraten.
Ein weiteres Risiko besteht darin, dass sich Benutzer möglicherweise nicht daran erinnern, welches ihrer Kennwörter sie auf dieser Website verwendet haben, sodass sie ihre gemeinsamen Kennwörter ausprobieren. Jetzt ist diese Site plötzlich ein größeres Ziel, da ein Angreifer möglicherweise nicht nur das Konto eines Benutzers dort, sondern auch auf anderen Sites mit der praktischen Liste "ungültiger" Passwörter gefährden kann.
Sie können einige davon abschwächen Risiken durch Löschen der Speicherung ungültiger Kennwörter unmittelbar nach der Anzeige nach einem gültigen Login. Dies sollte das Zeitfenster für einen Angreifer einschränken, auf die Daten zuzugreifen und von ihnen zu profitieren.
Die Frage, die Sie Ihrem Client wahrscheinlich stellen sollten, ist, wie er vorhersagt, dass Benutzer von der Anzeige ihrer ungültigen Kennwörter profitieren werden. Ist es so, dass Benutzer erkennen können, wie sie ihr Passwort falsch eingegeben haben? Tippfehler sind nicht beabsichtigt, daher ist es unwahrscheinlich, dass das Anzeigen ihres Fehlers zukünftige Anmeldeversuche verbessert. So können Benutzer einen Angreifer identifizieren, der versucht, seine Passwörter zu erraten? Ein ähnliches Feedback kann durch Auflisten von Datum, Uhrzeit, IP / Geolocation oder anderen Informationen für ungültige Versuche ohne das versuchte Passwort gegeben werden. Benutzer wissen also, dass sie es bei der Passworteingabe vermasselt haben und geben dem Anmeldesystem der Site keine Schuld? Dies scheint der einzige zu sein, der Verdienste hat, und ich bin mir nicht sicher, ob er genug Wert bietet, um das Risiko zu rechtfertigen.
Ich vermute, wenn Sie erst einmal besser verstanden haben, was sie mit dieser Funktion erreichen wollen, können Sie dies tun schlagen wahrscheinlich sicherere Alternativen vor.