sql >> Database teknologi >  >> RDS >> Mysql

Hvordan bruger jeg password hashing med PDO for at gøre min kode mere sikker?

Bare brug et bibliotek. Helt seriøst. De eksisterer af en grund.

Gør det ikke selv. Hvis du laver dit eget salt, GØR DU DET FORKERT . Du bør bruge et bibliotek, der håndterer det for dig.

$dbh = new PDO(...);

$username = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$hash = password_hash($password, PASSWORD_DEFAULT);

$stmt = $dbh->prepare("insert into users set username=?, email=?, password=?");
$stmt->execute([$username, $email, $hash]);

Og ved login:

$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
}


  1. Sådan defineres en auto-inkrement primær nøgle i PostgreSQL

  2. Nummerseriegenerator-udfordringsløsninger – Del 2

  3. formater interval med to_char

  4. Understøtter SQLDeveloper eksekvering af scripts?