[보안패치] 자동로그인 방식변경

불당   
   조회 124665   추천 0     비추천 0    

웹브라우져에서 cookie를 조작할 수 있고,

cookie의 조작을 통해서 다른 사용자로 자동로그인을 하는 경우가 있습니다.


$key가 다르쟎아? 라고 하시겠지만,

javascript 등의 해킹을 통해서 key가 유출될 가능성도 있고

암호화 되기는 했지만 mb_id를 사용자의 pc에 남겨두는 것도 조금은 찜찜해서

확실하게 보안을 확보하기 위해서 자동로그인 기능을 변경했습니다.


사용자의 PC에는 임의의 값만 자동로그인 쿠키로 저장되며,

그것을 DB에서 가져와서 mb_id를 얻어서 자동로그인을 진행시킵니다.

key값도 DB에 들어 있기 때문에, 사용자의 key를 java script 등으로 가져갈 수도 없습니다.


어찌보면 불당팩의 편의성을 높이는 과정에서 자초한 측면도 있는 문제이지만

스마트폰에서 자동로그인이 풀리는 것을 막기 위해서 어쩔 수 없는 선택이었습니다. -..-;;;



개발에 참조한 자료

http://stackoverflow.com/questions/7591728/designing-a-secure-auto-login-cookie-system-in-php


* 상세한 코드는 불당팩의 해당파일을 참조하시기 바랍니다.


자동로그인이 check된 경우,

1) /bbs/login_check.php에서

ck_mb_id 쿠키를 임의의 난수로 생성한다

생성된 난수값을 g4_login_cookie 테이블에 저장한다

ck_auto에 키를 넣지 않게 때문에, 해당 코드는 삭제해 버립니다.


    // 불당팩 - unique한 값을 생성해 줍니다
    $uid = md5(uniqid($_SERVER[SERVER_ADDR], true));

    // cookie DB에서 key가 같은 경우를 모두 삭제해줍니다
    $sql = " delete from $g4[cookie_table] where cookie_key='$key' ";
    sql_query($sql);

    // 쿠키와 Key를 DB에 저장
    $sql = " insert into $g4[cookie_table] set cookie_name='$uid', cookie_value='$mb[mb_id]', cookie_key='$key', cookie_datetime='$g4[time_ymdhis]' ";
    sql_query($sql);

    set_cookie('ck_mb_id', $uid, 86400 * 31);


bbs/logout.php에서는 쿠키를 지워주고 db도 정리해줘야 합니다.


2) common.php에서

저장된 ck_mb_id 쿠키를 가져오고

그것을 가지고 g4_login_cookie 테이블의 mb_id 값을 읽어와서

자동로그인 id를 설정해준다.

ck_auto에 저장되는 $key는 g4_login_cookie에 저장되기 때문에, ck_auto는 더이상 쓰이지 않는다.


        // 불당팩 - 암호화된 쿠키값을 이용해서 mb_id를 가져온다
        $sql = " select * from $g4[cookie_table] where cookie_name='$tmp_mb_id' ";
        $mb_cookie = sql_fetch($sql);

        $tmp_mb_id = $mb_cookie['cookie_value'];
        $tmp_key = $mb_cookie['cookie_key'];

CREATE TABLE IF NOT EXISTS `g4_cookie` (
  `cookie_id` int(11) NOT NULL AUTO_INCREMENT,
  `cookie_name` varchar(255) NOT NULL,
  `cookie_value` varchar(255) NOT NULL,
  `cookie_key` varchar(255) NOT NULL,
  `cookie_datetime` datetime NOT NULL,
  PRIMARY KEY (`cookie_id`),
  UNIQUE KEY `cookie_id` (`cookie_id`),
  KEY `cookie_name` (`cookie_name`),
  KEY `cookie_datetime` (`cookie_datetime`)
)


- opencode.co.kr -
PC관리전문 티씨오솔루션
PC자원관리, 불법S/W, S/W배포, 보안패치, 원격제어, IP관리, NAC
국제결혼피해자가 관리하는커플
믿을수있는 베트남국제결혼, 태국국제결혼 태국, 베트남신부 가출시 500만원환급
국제결혼사이트 가나국제웨딩
정식등록, 베트남, 캄보디아국제결혼, 서류대행, 프로필교환 맞춤결혼
파워링크 AD   클릭초이스등록
진아얌 2014-07
필요했었는데 감사합니다 ^^


제목Page 2/28
2015-10   5939   불당
2015-10   5893   불당
2015-10   5699   불당
2015-10   5515   불당
2015-10   76313   불당
2015-10   6115   불당
2015-10   5746   불당
2015-10   6155   불당
2015-09   5992   불당
2015-09   7257   불당
2015-09   6764   불당
2015-09   6627   불당
2015-09   74325   불당
2015-09   72153   불당
2015-09   75097   불당
2014-06   124666   불당
2014-04   10762   불당
2014-04   10204   불당
2014-04   10499   불당
2014-03   15181   불당