PDO를 사용한 비밀번호 해싱으로 코드 보호
제공된 코드는 기능을 달성하지만 보안이 심각하게 손상되었습니다. 보안을 강화하려면 PDO를 사용한 비밀번호 해싱을 구현하는 것이 중요합니다.
기존 코드에 비밀번호 해싱 통합
비밀번호 해싱을 통합하려면 평판이 좋은 라이브러리를 사용하는 것이 좋습니다. PHP 5.5의 경우 비밀번호_해시()를 사용하고, PHP 5.3.7에는 비밀번호 호환 기능이 있지만 다른 버전에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!