sql >> データベース >  >> RDS >> Mysql

PDOでパスワードハッシュを使用してコードをより安全にするにはどうすればよいですか?

    ライブラリを使用するだけです。真剣に。それらは理由があります。

    自分でやらないでください。独自のソルトを作成している場合は、間違っています 。それを処理するライブラリを使用する必要があります。

    $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]);
    

    そしてログイン時:

    $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. SQLServerで数値をフォーマットする方法

    2. ExcelデータをMySQLデータベースにインポートする方法を学ぶ

    3. MySQLの日付形式–知っておくべきこと

    4. SQLServerデータベースパフォーマンス監視プラットフォームが提供する必要のある上位5つの機能