회원가입시 메일 인증 버그 관련

회원가입시 메일 인증 버그 관련

QA

회원가입시 메일 인증 버그 관련

본문

안녕하세요~

제가 운영 중인 사이트는

메일 인증을 통해 회원가입이 가능하도록 설정해놨습니다.

그런데 최근 봇에 의한 회원가입이 많아 졌고(의미없는 아이디, 이름, 가입폼이 아닌 값들 입력 등)

의미없는 이메일주소(사이트가 실제하지않는 도메인)로 가입된 계정에서

메일 인증도 되어있음을 확인하였습니다.

심지어 제가 임의로 삭제한 계정(2~3일전 삭제)에서도

금일 메일 인증이 된 것을 보고 (물론 삭제한 계정이라서 로그인은 못하지요)

질문답 게시판에 글을 남기기로 하였습니다.

 

제가 임의로 테스트한 결과 인증메일로 가는 주소에서

(사이트도메인/bbs/email_certify.php?mb_id=*****&mb_md5=XXXXX)

아래 'XXXXX' 부분만 알면 해당 메일 접속하지 않아도 인증이 되더라구요.

그리고 이 주소는 계정을 삭제해도 DB에 남아있어서

삭제된 계정(재가입 방지를 위해 일부 정보 DB 저장됨)도 메일 인증이 가능하였습니다.

 

따라서 악의적인 공격자가 'XXXXX'만 알면

의미없는 이메일로 회원 가입이 가능하다는게 제 현재 결론인데

그래서 질문은

저 XXXXX 주소 생성시 규칙을 제가 임의로 바꿀수있을까요?

아니라면 위의 상황을 막을 수 있는 방법이 있을까요?

 

참고로 그누보드 버전은 5.2.9.8.1 입니다.

 

이 질문에 댓글 쓰기 :

답변 4

음...  5.2.9.8.4 와 5.3.1.3 에서 각각 테스트를 했습니다.

mb_email_certify2 의 값은 아래와 같은 규칙으로 생성되고 있습니다.

5.2.9.8.1 도 mb_email_certify2 생성로직은 5.2.9.8.4와 동일합니다.

 

bbs/register_form_update.php  256~261줄

        // 어떠한 회원정보도 포함되지 않은 일회용 난수를 생성하여 인증에 사용
        if ($config['cf_use_email_certify']) {
            $mb_md5 = md5(pack('V*', rand(), rand(), rand(), rand()));
            sql_query(" update {$g5['member_table']} set mb_email_certify2 = '$mb_md5' where mb_id = '$mb_id' ");
            $certify_href = G5_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&mb_md5='.$mb_md5;
        }

 

 

또한 메일인증을 마치면 mb_email_certify2 필드는 삭제됨을 확인했습니다.

문의하신 내용처럼 mb_md5 값을 알고 있다고 해서 메일인증을 우회할수는 없습니다.

질문하신 내용을 재현해봤습니다.

1. 회원가입 신청

2. 회원이 아직 메일 인증을 안받음

3. 관리자가 계정을 삭제

4. 삭제된 계정인데 이메일 인증이 됨

이렇게 4번 즉, 관리자가 계정 삭제를 했는데 왜 메일 인증이 되는가 질문이군요

회원삭제시 메일인증이 종료되지 않은 mb_email_certify2 필드의 값을 삭제되지 않아서 발생하는 현상이지만, 이것은 해당 아이디에 대해서만 해당되는 것이며, 무의미한 난수로 생성된 값이므로 이것과 동일하게 재생성되는 일은 발생하지 않습니다.

 

물론, 계정 삭제시 mb_email_certify2 도 삭제되는 것이 맞겠다는 생각이 들기는 하네요.

버그신고에 요 사항에 대해서 건의를 하도록 하겠습니다.

냑의 버그신고에 이것과 관련해서 문의를 했고

삭제(탈퇴)회원에 대해서는 메일인증을 하지 않도록 로직을 개선하겠다고 답변을 받았습니다.

앞서 댓글로도 남겼지만, 인증키값은 재사용되지않는 1회성 정보이므로,

그것으로 인한 문제는 발생하지 않습니다.

해피정님
완벽한 답변 감사드려요^^
이메일 인증용 일회용 난수가 어떻게 만들어지는지 몰랐는데
소스 보니깐 개념이 생겼어요~

 

그리고 버그 신고도 대신 해주셔서
회원 삭제 로직이 좀더 깔끔해지겠네요~
감사드립니다~~^^

답변을 작성하시기 전에 로그인 해주세요.
전체 166
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT