보안 - 로그인 정보 암호화

· 댓글 : 2 조회 : 3611 · 6

현재 RB의 경우

아이디 및 패스워드 저장을 지원하고 있습니다.

 

이 아이디 및 패스워드 저장은 각자의 PC에 쿠키로 저장이 됩니다만.

문제는 텍스트값 그대로이기 때문에

위험성이 존재할 수 밖에 없습니다.

 

암호화 함수는 각자 본인에게 편리한 함수를 만들어 사용하시면 됩니다만

귀차니즘 발동이 걸리신 분들을 위하여 간단한 함수를 추가합니다.

 

1. 라이브러리 추가

/_core/function/lib/encrypt_base64.php

 

<?php
function LIB_encrypt_base64($value
){
if(!
$value){return false
;}
$key = '암호키'
;
$text = $value
;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB
);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND
);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv
);
return
trim(base64_encode($crypttext));

}
?>

 

/_core/function/lib/decrypt_base64.php

 

<?php
function LIB_
decrypt_base64($value
){
if(!
$value){return false
;}
$key = '암호키'
;
$crypttext = base64_decode($value);

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB
);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND
);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv
);
return
trim($decrypttext
);
}
?>

 

 

/_core/function/sys.func.php

 

// 암호화를 위한 추가 함수
function encrypt_base64($plain_text)
{
 include_once $GLOBALS['g']['path_core'].'function/lib/encrypt_base64.php';
 return LIB_encrypt_base64($plain_text);
}

 

// 복호화를 위한 추가 함수
function decrypt_base64($enc_text)
{
 include_once $GLOBALS['g']['path_core'].'function/lib/decrypt_base64.php';
 return LIB_decrypt_base64($enc_text);
}

 

 

2. 로그인 정보 관련 파일 수정

로그인관련 정보는 다음 파일들에 산재해 있습니다.

 

암호화

/modules/home/lang.korean/action/a.login.php (83라인)

 

복호화

/modules/home/lang.korean/pages/popup.login.php

/modules/member/lang.korean/pages/_pc/login/main.php

/modules/member/lang.korean/pages/_mobile/login/main.php

/modules/admin/lang.korean/theme/_pc(_mobile)/~login.php

/modules/shop/theme/_pc(_mobile)/~login.php

/layout/~plugin/login.php

index.php

등 입니다.

 

기타 더 수정해야할 파일들도 존재할 수 있습니다만

기본적으로는 위 정도이구요.

 

암호화는 다음과 같습니다.

setcookie('svshop', $id.'|'.$pw, time()+60*60*24*30, '/');

->

setcookie('svshop', encrypt_base64($id).'|'.encrypt_base64($pw), time()+60*60*24*30, '/');

 

복호화는 다음과 같습니다.

getArrayCookie($_COOKIE['svshop'],'|',0) -> decrypt_bae64(getArrayCookie($_COOKIE['svshop'],'|',0))

getArrayCookie($_COOKIE['svshop'],'|',1) -> decrypt_bae64(getArrayCookie($_COOKIE['svshop'],'|',1))

 

이렇게 쿠키암호화를 해두는 것만으로도

나름 보안에 도움이 되리라 사료됩니다.

통계분석을 위해 매체별 전용URL 사용해주세요.
수이님의 포스트
최근 리스트
리스트가 없습니다.