본문 바로가기

서버 이전시 로그인 문제 - 그누보드로 만든 사이트

by 푸바오놀이터 2013. 12. 2.
반응형

그누보드로 만든 사이트에서 서버 이전시 로그인 문제 해결방법 입니다.
그누보드 기준 버전 4.0이하와 4.1 이상에서의 비밀번호 값에 대한 연구.

MySQL password 함수 4.0이하 : 16바이트
MySQL password 함수 4.1이상 : 40바이트

 

여기서 생기는 충돌문제: 과거 16바이트 이하에서 로그인이 가능하던 것이 서버 이전 후 바이트값이 다르기 때문에 로그인이 되지 않습니다.

 

 

 

아래 그림은 FTP로 로그인 했을 때 수정해야 하는 해당 파일 경로입니다.

 

 

[ 문제해결 방법 ]
아래 3개의 파일에 대한 함수 수정 및 첨가로 가능합니다.
간단하게 정리 했으니 따라 해 보세요.
=================
lib/common.lib.php
bbs/login_check.php
bbs/register_form.php
=================

common.lib.php
---------------------------------------
function sql_old_password($value)
{
    $row = sql_fetch(" select old_password('$value') as pass ");
    return $row[pass];
}
---------------------------------------

login_check.php의 15번째 줄 바꿔주기.
---------------------------------------
if (!$mb[mb_id]) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
} else { //id가 있는경우
if ( (sql_password($mb_password) != $mb[mb_password]) && (sql_old_password($mb_password) != $mb[mb_password]) ) {
     alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}
}
---------------------------------------

register_form.php의 66-67번째 줄 바꿔주기.
---------------------------------------
if (!($member[mb_password] == sql_password($_POST[mb_password]) && $_POST[mb_password]) && !($member[mb_password] == sql_old_password($_POST[mb_password]) && $_POST[mb_password]))
         alert("패스워드가 틀립니다.");
---------------------------------------

회원이 모두 비밀번호를 40바이트로 바꾼 후 위에 수정한 것들을 다시 원상복귀 해 놓는게 좋습니다.

첨부파일에도 올려놨습니다.

서버 이전시 로그인 문제.txt


사이트에 회원이 없다면 별 상관이 없겠으나 로그인을 해야 하는 회원이 많다면 필요한 부분입니다.
어쨌든 이렇게 하면 정상 적으로 로그인이 되며 이 설명은 그누보드로 만든 사이트 기준입니다.

 

반응형