2016-05-18 6 views
0

Während der Anmeldung Ich hole das Passwort aus der Datenbank zum Vergleich mit dem Benutzer eingegebenes Passwort, und wenn der Vergleich erfolgreich ist, dann speicher ich dieses Passwort in eine Variable mit Setter-Methode für Weitere Verwendung in Change-Passwort-Methode.Korrekter Ansatz für das Change Admin Passwort in Java

In ändern Passwort Methode Ich muss den Benutzer eingegeben Wert für altes Passwort mit dem aktuellen Passwort in der Datenbank gespeichert vergleichen. Daher verwende ich den Wert, der in dieser Variablen gespeichert ist, mit der Getter-Methode, die bei der erfolgreichen Anmeldung festgelegt wurde.

Ich muss nur wissen, ob diese Vorgehensweise korrekt ist oder ich die Datenbank erneut für das Kennwort aufrufen muss?

+2

Wenn ich Sie richtig verstehe, speichern Sie Passwörter im Klartext. Bitte tu das nicht. Recherchieren Sie zum Thema Speichern und Vergleichen von Passwort-Hashes. – reto

+0

Im Wesentlichen ist der richtige Ansatz für alles, was mit Sicherheit zu tun hat, ** zuerst ** eine Menge zu lesen und zu studieren. Du solltest besser ** nicht ** anfangen, deine naiven Ideen zu kodieren. Dies ist nicht als Beleidigung gemeint; Stattdessen: Sicherheit richtig zu bekommen ist ** schwer **. Sie sollten nicht eine einzige Zeile Code schreiben, bis Sie ** wirklich ** für eine ganze Zeit in das gesamte Thema eingetaucht sind. Mit anderen Worten: Eine Person, die wirklich einen solchen Code schreiben möchte, sollte solche Fragen nicht stellen müssen. – GhostCat

+0

Nein, ich speichere den Hashwert des Passworts. – bhoomi

Antwort

0

Wenn Ihre Anwendung sich mit einem anderen System mit demselben Benutzer anmelden kann, ist dieser Ansatz sehr gefährlich, da ich nach der Anmeldung von einem System das Passwort von einem anderen System ändern kann, was bei der ersten Anmeldung nicht berücksichtigt wird Ändern Sie das Passwort bei beiden Systemen, was falsch ist (weil das neue Passwort nicht in der Login-Variable eines anderen Accounts gespeichert wurde). Daher möchte ich vorschlagen, dass Sie aus der Datenbank überprüfen.

+1

Danke, es ist hilfreich für mich, meinen Code mit einem weiteren Szenario zu testen. – bhoomi

0

Passwort nicht lokal speichern, erstellen Sie einfach eine andere Seite/Methode/Aktion, um es zu vergleichen. Sie können einige Verschlüsselungen zu Ihrem Passwort wie Basis ändern oder eine andere verfügbare Bibliothek, machen es sicherer, wenn Sie sie lokal speichern. Ich werde vorschlagen, sie nicht zu speichern.