Sécurisation du code avec hachage de mot de passe à l'aide de PDO
Bien que le code fourni atteigne la fonctionnalité, sa sécurité est gravement compromise. Pour améliorer la sécurité, la mise en œuvre du hachage de mot de passe avec PDO est cruciale.
Incorporation du hachage de mot de passe dans le code existant
Pour intégrer le hachage de mot de passe, envisagez d'utiliser des bibliothèques réputées. Pour PHP 5.5, utilisez password_hash(), PHP 5.3.7 est compatible avec les mots de passe, tandis que d'autres peuvent opter pour phpass. Évitez de créer du sel personnalisé, car les bibliothèques gèrent ce processus efficacement.
Mise en œuvre du hachage pour l'enregistrement
// Establish PDO connection... $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["password"]; $hash = password_hash($password, PASSWORD_DEFAULT); // Hashes password $stmt = $dbh->prepare("insert into users set username=?, email=?, password=?"); $stmt->execute([$username, $email, $hash]); echo "<p>Registration successful</p>";
Vérification des mots de passe hachés pour la connexion
// Establishing PDO connection... $sql = "SELECT * FROM users WHERE username = ?"; $stmt = $dbh->prepare($sql); $result = $stmt->execute([$_POST['username']]); $users = $result->fetchAll(); if (isset($users[0]) { if (password_verify($_POST['password'], $users[0]->password)) { // Valid login } else { // Invalid password } } else { // Invalid username }
Avantages du mot de passe Hachage
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!