Zurückziehen gesalzener Passwörter zur Authentifizierung
Bei der Implementierung einer Mitgliederseite mit in einer Datenbank gespeicherten gesalzenen Passwörtern erfordert der Anmeldemechanismus sorgfältige Aufmerksamkeit. Die Verwendung eines Salted-Passwort-Ansatzes erhöht zwar die Sicherheit, kann jedoch auch zu Herausforderungen bei der Überprüfung der Benutzeranmeldeinformationen führen.
Problem:
Auf der Mitglieder-Anmeldeseite (sofern vorhanden) tritt ein Fehler auf Der Eintrag scheint die Prüfung zur Überprüfung der Existenz des Benutzers zu bestehen. Insbesondere gibt die Auswertung von $result === false immer false zurück, wodurch das erwartete Verhalten verhindert wird.
Lösung:
Die Hauptursache des Problems liegt in der Vorgehensweise zum Abrufen des Passwort-Hash aus der Datenbank. Um die Benutzeranmeldeinformationen zu überprüfen, muss zunächst der Salted-Passwort-Hash abgerufen werden, der dem angegebenen Benutzernamen entspricht:
$saltQuery = "SELECT salt FROM users WHERE name = '$name';"; $result = mysqli_query($connect, $saltQuery); $row = mysqli_fetch_assoc($result); $salt = $row['salt'];
Sobald der Salt erhalten wurde, sollte er zum Hashen des bereitgestellten Passworts verwendet werden:
$saltedPW = $password.$salt; $hashedPW = hash('sha256', $saltedPW);
Das resultierende gehashte Passwort sollte dann verwendet werden, um die Datenbank nach dem des Benutzers abzufragen Existenz:
$sqlQuery = "SELECT * FROM users WHERE name = '$name' AND password = '$hashedPW'";
Weitere Überlegungen:
Bei der Überprüfung von Passwörtern ist es wichtig, starke Passwort-Hashing-Funktionen wie bcrypt oder Argon2 zu verwenden, die sichere und zeitintensive Bereitstellung bieten Hashing-Algorithmen. Darüber hinaus sollten vorbereitete Anweisungen verwendet werden, um SQL-Injection-Angriffe zu verhindern.
Das obige ist der detaillierte Inhalt vonWarum gibt die Authentifizierung mit meinem Salted-Passwort immer den Wert „true' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!