테스트 사이트 - 개발 중인 베타 버전입니다

로그인시 비밀번호 비교 질문입니다. 채택완료

그켬민 4년 전 조회 7,823

5.4.5.1 버전을 사용중에 있습니다.

 

여분필드를 이용해 2차 비밀번호를 만들어 사용하려고합니다.

 

비밀번호을 암호화 하려고 get_encrypt_string 함수로 암호화를 하여 저장을 하였습니다.

 

기존 비밀번호도 암호화 하여 저장하는것을 압니다.

 

그래서 2차비밀번호를 사용할때 기존 로그인 할때 비밀번호를 비교하는 방식으로 2차비밀번호도 비교하려고 합니다만,

 

bbs/login_check.php 에서 어느부분이 비밀번호를 비교하여 통과시키는 코드인지 모르겠습니다.

 

알려주시면 감사하겠습니다.

 

</p>

<p><?php</p>

<p>include_once('./_common.php');</p>

<p> </p>

<p>$g5['title'] = "로그인 검사";</p>

<p> </p>

<p>$mb_id       = isset($_POST['mb_id']) ? trim($_POST['mb_id']) : '';</p>

<p>$mb_password = isset($_POST['mb_password']) ? trim($_POST['mb_password']) : '';</p>

<p> </p>

<p>run_event('member_login_check_before', $mb_id);</p>

<p> </p>

<p>if (!$mb_id || !$mb_password)</p>

<p>    alert('회원아이디나 비밀번호가 공백이면 안됩니다.');</p>

<p> </p>

<p>$mb = get_member($mb_id);</p>

<p> </p>

<p>//소셜 로그인추가 체크</p>

<p> </p>

<p>$is_social_login = false;</p>

<p>$is_social_password_check = false;</p>

<p> </p>

<p>// 소셜 로그인이 맞는지 체크하고 해당 값이 맞는지 체크합니다.</p>

<p>if(function_exists('social_is_login_check')){</p>

<p>    $is_social_login = social_is_login_check();</p>

<p> </p>

<p>    //패스워드를 체크할건지 결정합니다.</p>

<p>    //소셜로그인일때는 체크하지 않고, 계정을 연결할때는 체크합니다.</p>

<p>    $is_social_password_check = social_is_login_password_check($mb_id);</p>

<p>}</p>

<p> </p>

<p>//소셜 로그인이 맞다면 패스워드를 체크하지 않습니다.</p>

<p>// 가입된 회원이 아니다. 비밀번호가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는</p>

<p>// 회원아이디를 입력해 보고 맞으면 또 비밀번호를 입력해보는 경우를 방지하기 위해서입니다.</p>

<p>// 불법사용자의 경우 회원아이디가 틀린지, 비밀번호가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.</p>

<p>if (!$is_social_password_check && (! (isset($mb['mb_id']) && $mb['mb_id']) || !login_password_check($mb, $mb_password, $mb['mb_password'])) ) {</p>

<p> </p>

<p>    run_event('password_is_wrong', 'login', $mb);</p>

<p> </p>

<p>    alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');</p>

<p>}</p>

<p> </p>

<p>// 차단된 아이디인가?</p>

<p>if ($mb['mb_intercept_date'] && $mb['mb_intercept_date'] <= date("Ymd", G5_SERVER_TIME)) {</p>

<p>    $date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_intercept_date']);</p>

<p>    alert('회원님의 아이디는 접근이 금지되어 있습니다.\n처리일 : '.$date);</p>

<p>}</p>

<p> </p>

<p>// 탈퇴한 아이디인가?</p>

<p>if ($mb['mb_leave_date'] && $mb['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME)) {</p>

<p>    $date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_leave_date']);</p>

<p>    alert('탈퇴한 아이디이므로 접근하실 수 없습니다.\n탈퇴일 : '.$date);</p>

<p>}</p>

<p> </p>

<p>// 메일인증 설정이 되어 있다면</p>

<p>if ( is_use_email_certify() && !preg_match("/[1-9]/", $mb['mb_email_certify'])) {</p>

<p>    $ckey = md5($mb['mb_ip'].$mb['mb_datetime']);</p>

<p>    confirm("{$mb['mb_email']} 메일로 메일인증을 받으셔야 로그인 가능합니다. 다른 메일주소로 변경하여 인증하시려면 취소를 클릭하시기 바랍니다.", G5_URL, G5_BBS_URL.'/register_email.php?mb_id='.$mb_id.'&ckey='.$ckey);</p>

<p>}</p>

<p> </p>

<p>run_event('login_session_before', $mb, $is_social_login);</p>

<p> </p>

<p>@include_once($member_skin_path.'/login_check.skin.php');</p>

<p> </p>

<p>// 회원아이디 세션 생성</p>

<p>set_session('ss_mb_id', $mb['mb_id']);</p>

<p>// FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106</p>

<p>set_session('ss_mb_key', md5($mb['mb_datetime'] . get_real_client_ip() . $_SERVER['HTTP_USER_AGENT']));</p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
그누위즈

login_password_check() 함수가 비밀번호를 체크하는 함수입니다.

/lib/common.lib.php 파일에
해당 함수가 있습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인