[모의해킹 스터디] 과제 Login logic

바울·2024년 11월 7일
0

모의해킹 스터디

목록 보기
7/40

이전 글에서 식별 인증에 대해 알아보았다. 식별은 본인이 누구인지 찾고 인증은 본인이 맞는지 확인을 하는 거다. 로그인 시 식별과 인증을 동시에 수행할 수도 있고 식별과 인증을 따로 수행하는 로직도 있고 여러 로그인 로직이 있을 거다, 이런 여러 종류에 로그인 로직을 만들어 보고자 한다!

식별인증 동시

  • 식별 인증 동시 확인
  • 비밀번호 hash 처리하지 않음
// ID와 비밀번호를 동시에 확인
$sql = "SELECT * FROM members WHERE id = '$input_id' AND pass = '$input_pass'";

$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    echo "로그인 성공";
} else {
    echo "아이디 또는 비밀번호가 잘못되었습니다.";
}

식별인증 동시 비밀번호 Hash

  • 식별 인증 동시 확인
  • 비밀번호 hash 처리
// 사용자가 입력한 비밀번호를 해시 처리
$hash_pass = hash('sha256', $input_pass);

// ID와 해시된 비밀번호를 동시에 확인
$sql = "SELECT * FROM members WHERE id = '$input_id' AND pass = '$hash_pass'";

$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    echo "로그인 성공";
} else {
    echo "아이디 또는 비밀번호가 잘못되었습니다.";
}

식별인증 분리

  • 식별 인증 분리하여 확인
  • 비밀번호 hash 처리하지 않음
// 1단계: ID 확인 (식별)
$sql_id = "SELECT * FROM members WHERE id = '$input_id'";
$res = mysqli_query($conn, $sql_id);

if ($row = mysqli_fetch_array($res)) {
    // 2단계: 비밀번호 확인 (인증)
    if ($row['pass'] == $input_pass) {
        echo "로그인 성공";
    } else {
        echo "비밀번호가 잘못되었습니다.";
    }
} else {
    echo "아이디가 존재하지 않습니다.";
}

식별인증 분리 비밀번호 Hash

  • 식별 인증 분리하여 확인
  • 비밀번호 hash 처리
// 1단계: ID 확인 (식별)
$sql_id = "SELECT * FROM members WHERE id = '$input_id'";
$res = mysqli_query($conn, $sql_id);

if ($row = mysqli_fetch_array($res)) {
    // 2단계: 비밀번호 해시 처리 후 확인 (인증)
    $hash_pass = hash('sha256', $input_pass); // 입력된 비밀번호를 해시 처리

    if ($row['pass'] == $hash_pass) {
        echo "로그인 성공";
    } else {
        echo "비밀번호가 잘못되었습니다.";
    }
} else {
    echo "아이디가 존재하지 않습니다.";
}

0개의 댓글