„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie verifiziert man Benutzerkennwörter sicher mit der Funktion „password_verify“ von PHP?

Wie verifiziert man Benutzerkennwörter sicher mit der Funktion „password_verify“ von PHP?

Veröffentlicht am 05.11.2024
Durchsuche:710

How to Verify User Passwords Securely with PHP\'s password_verify Function?

Verschlüsselte Passwörter mit PHP entschlüsseln

Viele Anwendungen speichern Benutzerpasswörter sicher mithilfe von Verschlüsselungsalgorithmen wie „password_hash“. Bei der Validierung von Anmeldeversuchen ist es jedoch wichtig, das eingegebene Passwort mit der verschlüsselten, gespeicherten Version zu vergleichen.

Das Problem der Verschlüsselung

password_hash verwendet Bcrypt, ein ein- Way-Hashing-Algorithmus, was bedeutet, dass das verschlüsselte Passwort nicht rückgängig gemacht oder entschlüsselt werden kann. Hierbei handelt es sich um eine Sicherheitsfunktion, die sicherstellt, dass Angreifer selbst bei einer Kompromittierung der Datenbank nicht auf Klartext-Passwörter zugreifen können.

Die Lösung: Passwortüberprüfung

Zur Validierung von Benutzerpasswörtern , verwenden Sie die Funktion „password_verify“:

if (password_verify('input_password', $encrypted_password)) {
    // Password matches!
} else {
    // Invalid password.
}

Diese Funktion vergleicht das eingegebene Passwort mit der verschlüsselten Version und gibt „true“ zurück, wenn sie übereinstimmen.

Ändern Ihrer SQL-Abfrage

Anstatt das einzuschließen Geben Sie das Passwort in die SQL-Abfrage ein und verwenden Sie die Parametrisierung:

$sql_script = 'SELECT * FROM USERS WHERE username=?';

Dies schützt vor SQL-Injection-Angriffen, indem böswillige Benutzer daran gehindert werden Bearbeiten Ihrer Abfrage.

Beispiel

Hier ist ein Beispiel für die Verwendung von „password_verify“:

$username = $_POST['username'];
$input_password = $_POST['password'];

$sql_script = 'SELECT * FROM USERS WHERE username=?';

if ($result = $conn->query($sql_script, $username)) {
    if ($user = $result->fetch_assoc()) {
        if (password_verify($input_password, $user['password'])) {
            // Login successful!
        } else {
            // Invalid password.
        }
    } else {
        // User not found.
    }
}
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3