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

불당   
   조회 95881   추천 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 -
한빛교육센터
무료취업교육. 자바, 모바일, 빅데이터, 훈련수당248만원지원, 강남종로신촌.
KGITBANK학원 종로본점
상담예약접수처, 중고등학생수시대비, 대학전공, 국비지원취업, 정보보안전문가학원.
코리아정보보안IT학원 박세현
수강료&시간표조회, 방학특강50%할인, 취업무료지원, 신촌역위치,JAVA
파워링크 AD   클릭초이스등록
진아얌 2014-07
필요했었는데 감사합니다 ^^


제목Page 2/28
2015-10   3550   불당
2015-10   3396   불당
2015-10   3213   불당
2015-10   50866   불당
2015-10   3682   불당
2015-10   3520   불당
2015-10   3754   불당
2015-09   3798   불당
2015-09   4584   불당
2015-09   4186   불당
2015-09   4083   불당
2015-09   48069   불당
2015-09   46401   불당
2015-09   48895   불당
2014-06   95882   불당
2014-04   8080   불당
2014-04   7814   불당
2014-04   7954   불당
2014-03   12292   불당
2014-03   10496   불당