그누보드 [G5] wr_password 와 mb_password 필드를 varchar 를 BLOB 로 변경하기
페이지 정보
본문
새로 세팅해서 테스트 한것이 아니므로 적용에 주의가 필요합니다.
고객사의 요청으로 유지보수를 진행하기 위해 디비를 살펴보니
그누보드의 회원 테이블의 비밀번호 필드가 varchar(255) 가 아닌 BLOB 이더군요
비밀번호 저장 방식도
$mb_password = '".sql_password($mb_password)."', 도
$mb_password = '".get_encrypt_string($mb_password)."', 도 아닌
$mb_password = UNHEX('".get_encrypt_string($mb_password)."'), 를 사용하네요
UNHEX 를 찾아보니 MySQL 5.6 부터 도입된 내용인가 보네요
https://www.w3resource.com/mysql/string-functions/mysql-unhex-function.php
blob 필드의 값을 회원가입과 로그인에서 어떻게 처리하는지 살펴보겠습니다.
설치하기전에 install 의 sql 파일의 필드 속성을 변경합니다.
1. install / gnuboard5.sql
`mb_password` varchar(255) NOT NULL default '',
를 아래와 같이 변경
`mb_password` blob NOT NULL default '',
`mb_password1` varchar(255) NOT NULL default '',
2. adm / sql_write.sql
`wr_password` varchar(255) NOT NULL,
를 아래와 같이 변경
`wr_password` blob NOT NULL,
`wr_password1` varchar(255) NOT NULL,
3-1. adm / member_form_update.php 91줄
sql_query(" insert into {$g5['member_table']} set mb_id = '{$mb_id}', mb_password = '".get_encrypt_string($mb_password)."', mb_datetime = '".G5_TIME_YMDHIS."', mb_ip = '{$_SERVER['REMOTE_ADDR']}', mb_email_certify = '".G5_TIME_YMDHIS."', {$sql_common} ");
를 아래와 같이 변경
sql_query(" insert into {$g5['member_table']} set mb_id = '{$mb_id}', mb_password = UNHEX('".get_encrypt_string($mb_password)."'), mb_password1 = '".get_encrypt_string($mb_password)."', mb_datetime = '".G5_TIME_YMDHIS."', mb_ip = '{$_SERVER['REMOTE_ADDR']}', mb_email_certify = '".G5_TIME_YMDHIS."', {$sql_common} ");
3-2. adm / member_form_update.php 174줄
$sql_password = " , mb_password = '".get_encrypt_string($mb_password)."' ";
를 아래와 같이 변경
$sql_password = " , mb_password = UNHEX('".get_encrypt_string($mb_password)."'), mb_password1 = '".get_encrypt_string($mb_password)."' ";
4-1. bbs / register_form_update 204줄
mb_password = '".get_encrypt_string($mb_password)."',
를 아래와 같이 변경
mb_password = UNHEX('".get_encrypt_string($mb_password)."'),
mb_password1 = '".get_encrypt_string($mb_password)."', mb_password1 = '".get_encrypt_string($mb_password)."',
4-2. bbs / register_form_update 303줄
$sql_password = " , mb_password = '".get_encrypt_string($mb_password)."' ";
를 아래와 같이 변경
$sql_password = " , mb_password = UNHEX('".get_encrypt_string($mb_password)."'), mb_password1 = '".get_encrypt_string($mb_password)."' ";
5. bbs / write_common_update.php 69줄
$wr_password = get_encrypt_string($wr_password);
를 아래와 같이 변경
$up_password = $wr_password
$wr_password = UNHEX('".get_encrypt_string($up_password)."');
$wr_password1 = '".get_encrypt_string($up_password)."' ";
6-1. bbs / write_update.php 228줄
$wr_password = get_encrypt_string($wr_password);
를 아래와 같이 변경
$up_password = $wr_password
$wr_password = UNHEX('".get_encrypt_string($up_password)."');
$wr_password1 = '".get_encrypt_string($up_password)."' ";
6-2. bbs / write_update.php 262줄
$wr_password = get_encrypt_string($wr_password);
를 아래와 같이 변경
$up_password = $wr_password
$wr_password = UNHEX('".get_encrypt_string($up_password)."');
$wr_password1 = '".get_encrypt_string($up_password)."' ";
6-3. bbs / write_update.php 364줄
$sql_password = $wr_password ? " , wr_password = '".get_encrypt_string($wr_password)."' " : "";
를 아래와 같이 변경
$sql_password = $wr_password ? " , wr_password = UNHEX('".get_encrypt_string($wr_password)."') , wr_password1 = '".get_encrypt_string($wr_password)."' " : "";
7. bbs / move_update.php 91줄
wr_password = '{$row2['wr_password']}',
를 아래와 같이 변경
wr_password = '{$row2['wr_password']}', wr_password1 = '{$row2['wr_password1']}',
고객사의 요청으로 유지보수를 진행하기 위해 디비를 살펴보니
그누보드의 회원 테이블의 비밀번호 필드가 varchar(255) 가 아닌 BLOB 이더군요
비밀번호 저장 방식도
$mb_password = '".sql_password($mb_password)."', 도
$mb_password = '".get_encrypt_string($mb_password)."', 도 아닌
$mb_password = UNHEX('".get_encrypt_string($mb_password)."'), 를 사용하네요
UNHEX 를 찾아보니 MySQL 5.6 부터 도입된 내용인가 보네요
https://www.w3resource.com/mysql/string-functions/mysql-unhex-function.php
blob 필드의 값을 회원가입과 로그인에서 어떻게 처리하는지 살펴보겠습니다.
설치하기전에 install 의 sql 파일의 필드 속성을 변경합니다.
1. install / gnuboard5.sql
`mb_password` varchar(255) NOT NULL default '',
를 아래와 같이 변경
`mb_password` blob NOT NULL default '',
`mb_password1` varchar(255) NOT NULL default '',
2. adm / sql_write.sql
`wr_password` varchar(255) NOT NULL,
를 아래와 같이 변경
`wr_password` blob NOT NULL,
`wr_password1` varchar(255) NOT NULL,
3-1. adm / member_form_update.php 91줄
sql_query(" insert into {$g5['member_table']} set mb_id = '{$mb_id}', mb_password = '".get_encrypt_string($mb_password)."', mb_datetime = '".G5_TIME_YMDHIS."', mb_ip = '{$_SERVER['REMOTE_ADDR']}', mb_email_certify = '".G5_TIME_YMDHIS."', {$sql_common} ");
를 아래와 같이 변경
sql_query(" insert into {$g5['member_table']} set mb_id = '{$mb_id}', mb_password = UNHEX('".get_encrypt_string($mb_password)."'), mb_password1 = '".get_encrypt_string($mb_password)."', mb_datetime = '".G5_TIME_YMDHIS."', mb_ip = '{$_SERVER['REMOTE_ADDR']}', mb_email_certify = '".G5_TIME_YMDHIS."', {$sql_common} ");
3-2. adm / member_form_update.php 174줄
$sql_password = " , mb_password = '".get_encrypt_string($mb_password)."' ";
를 아래와 같이 변경
$sql_password = " , mb_password = UNHEX('".get_encrypt_string($mb_password)."'), mb_password1 = '".get_encrypt_string($mb_password)."' ";
4-1. bbs / register_form_update 204줄
mb_password = '".get_encrypt_string($mb_password)."',
를 아래와 같이 변경
mb_password = UNHEX('".get_encrypt_string($mb_password)."'),
mb_password1 = '".get_encrypt_string($mb_password)."', mb_password1 = '".get_encrypt_string($mb_password)."',
4-2. bbs / register_form_update 303줄
$sql_password = " , mb_password = '".get_encrypt_string($mb_password)."' ";
를 아래와 같이 변경
$sql_password = " , mb_password = UNHEX('".get_encrypt_string($mb_password)."'), mb_password1 = '".get_encrypt_string($mb_password)."' ";
5. bbs / write_common_update.php 69줄
$wr_password = get_encrypt_string($wr_password);
를 아래와 같이 변경
$up_password = $wr_password
$wr_password = UNHEX('".get_encrypt_string($up_password)."');
$wr_password1 = '".get_encrypt_string($up_password)."' ";
6-1. bbs / write_update.php 228줄
$wr_password = get_encrypt_string($wr_password);
를 아래와 같이 변경
$up_password = $wr_password
$wr_password = UNHEX('".get_encrypt_string($up_password)."');
$wr_password1 = '".get_encrypt_string($up_password)."' ";
6-2. bbs / write_update.php 262줄
$wr_password = get_encrypt_string($wr_password);
를 아래와 같이 변경
$up_password = $wr_password
$wr_password = UNHEX('".get_encrypt_string($up_password)."');
$wr_password1 = '".get_encrypt_string($up_password)."' ";
6-3. bbs / write_update.php 364줄
$sql_password = $wr_password ? " , wr_password = '".get_encrypt_string($wr_password)."' " : "";
를 아래와 같이 변경
$sql_password = $wr_password ? " , wr_password = UNHEX('".get_encrypt_string($wr_password)."') , wr_password1 = '".get_encrypt_string($wr_password)."' " : "";
7. bbs / move_update.php 91줄
wr_password = '{$row2['wr_password']}',
를 아래와 같이 변경
wr_password = '{$row2['wr_password']}', wr_password1 = '{$row2['wr_password1']}',
댓글목록
등록된 댓글이 없습니다.