>백엔드 개발 >PHP 튜토리얼 >PDO를 사용한 비밀번호 해싱으로 내 코드를 어떻게 보호할 수 있나요?

PDO를 사용한 비밀번호 해싱으로 내 코드를 어떻게 보호할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-12-19 12:39:10643검색

How Can I Secure My Code with Password Hashing Using PDO?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.