"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP의 비밀번호 확인 기능을 사용하여 사용자 비밀번호를 안전하게 확인하는 방법은 무엇입니까?

PHP의 비밀번호 확인 기능을 사용하여 사용자 비밀번호를 안전하게 확인하는 방법은 무엇입니까?

2024-11-05에 게시됨
검색:606

How to Verify User Passwords Securely with PHP\'s password_verify Function?

PHP를 사용하여 암호화된 비밀번호 해독

많은 애플리케이션이 비밀번호 해시와 같은 암호화 알고리즘을 사용하여 사용자 비밀번호를 안전하게 저장합니다. 그러나 로그인 시도를 확인할 때 입력된 비밀번호를 암호화되어 저장된 버전과 비교하는 것이 중요합니다.

암호화 문제

password_hash는 Bcrypt를 사용합니다. 해싱 알고리즘을 사용하므로 암호화된 비밀번호는 되돌리거나 해독할 수 없습니다. 이는 데이터베이스가 손상되더라도 공격자가 일반 텍스트 비밀번호에 액세스할 수 없도록 보장하는 보안 기능입니다.

해결책: 비밀번호 확인

사용자 비밀번호를 확인하려면 , 비밀번호 확인 기능을 사용하세요:

if (password_verify('input_password', $encrypted_password)) {
    // Password matches!
} else {
    // Invalid password.
}

이 함수는 입력된 비밀번호를 암호화된 버전과 비교하여 일치하면 true를 반환합니다.

SQL 쿼리 수정

SQL 쿼리에 비밀번호를 입력하려면 매개변수화를 사용하세요:

$sql_script = 'SELECT * FROM USERS WHERE username=?';

이것은 악의적인 사용자가 쿼리 조작.

다음은 비밀번호 확인 사용의 예입니다:

$username = $_POST['username'];
$input_password = $_POST['password'];

$sql_script = 'SELECT * FROM USERS WHERE username=?';

if ($result = $conn->query($sql_script, $username)) {
    if ($user = $result->fetch_assoc()) {
        if (password_verify($input_password, $user['password'])) {
            // Login successful!
        } else {
            // Invalid password.
        }
    } else {
        // User not found.
    }
}
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3