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

불당   
   조회 121437   추천 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 -
코스모스팜 회원관리
한국형 회원가입, 보안설정과 수십 가지의 부가 기능 포함된 올인원
예쁜 여아원피스 미니로이
당일배송, 여아동복 원피스 쇼핑몰, 자체제작, 여자아이 아동복 전문, 특가할인!
쇼핑몰부업 창업은 아지트샵!
예쁜여아원피스 쇼핑몰부업 해보세요! 시작 첫날에 580만원 수익회원 탄생!
파워링크 AD   클릭초이스등록
진아얌 2014-07
필요했었는데 감사합니다 ^^


제목Page 2/28
2015-10   5607   불당
2015-10   5587   불당
2015-10   5392   불당
2015-10   5216   불당
2015-10   73475   불당
2015-10   5773   불당
2015-10   5433   불당
2015-10   5792   불당
2015-09   5695   불당
2015-09   6885   불당
2015-09   6389   불당
2015-09   6281   불당
2015-09   71073   불당
2015-09   68483   불당
2015-09   71545   불당
2014-06   121438   불당
2014-04   10428   불당
2014-04   9905   불당
2014-04   10173   불당
2014-03   14822   불당