PDO を使用したパスワード ハッシュによるコードのセキュリティ保護
提供されたコードは機能を実現しますが、そのセキュリティは大幅に侵害されます。セキュリティを強化するには、PDO を使用したパスワード ハッシュの実装が重要です。
既存のコードへのパスワード ハッシュの組み込み
パスワード ハッシュを統合するには、信頼できるライブラリの採用を検討してください。 PHP 5.5 の場合は、password_hash() を使用します。PHP 5.3.7 には、password-compat があり、他のバージョンでは phpass を選択できます。ライブラリがこのプロセスを効果的に管理するため、カスタム ソルトの作成は避けてください。
登録用のハッシュの実装
// 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>";
ログイン用のハッシュされたパスワードの確認
// 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 }
パスワードの利点ハッシュ
以上がPDO を使用したパスワード ハッシュでコードを保護するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。