diff --git a/adm/admin.lib.php b/adm/admin.lib.php index 822f5857b..80abc95f0 100644 --- a/adm/admin.lib.php +++ b/adm/admin.lib.php @@ -436,7 +436,7 @@ else if ($is_admin != 'super') } // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다. -$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']); +$admin_key = md5($member['mb_datetime'] . get_real_client_ip() . $_SERVER['HTTP_USER_AGENT']); if (get_session('ss_mb_key') !== $admin_key) { session_destroy(); diff --git a/bbs/login_check.php b/bbs/login_check.php index ec9bf3dcf..28075ccc1 100644 --- a/bbs/login_check.php +++ b/bbs/login_check.php @@ -56,7 +56,7 @@ if ( is_use_email_certify() && !preg_match("/[1-9]/", $mb['mb_email_certify'])) // 회원아이디 세션 생성 set_session('ss_mb_id', $mb['mb_id']); // FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106 -set_session('ss_mb_key', md5($mb['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'])); +set_session('ss_mb_key', md5($mb['mb_datetime'] . get_real_client_ip() . $_SERVER['HTTP_USER_AGENT'])); // 포인트 체크 if($config['cf_use_point']) { diff --git a/lib/common.lib.php b/lib/common.lib.php index 30db1d554..69b64e586 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -3403,6 +3403,14 @@ function is_use_email_certify(){ return $config['cf_use_email_certify']; } +function get_real_client_ip(){ + + if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) + return $_SERVER['HTTP_X_FORWARDED_FOR']; + + return $_SERVER['REMOTE_ADDR']; +} + function get_call_func_cache($func, $args=array()){ static $cache = array();