[튜닝] CSRF 보안 결함 으로 인해 다른 PC에서 관리자로 로그인 방지하는방법 (IP검사) > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

[튜닝] CSRF 보안 결함 으로 인해 다른 PC에서 관리자로 로그인 방지하는방법 (IP검사) 정보

[튜닝] CSRF 보안 결함 으로 인해 다른 PC에서 관리자로 로그인 방지하는방법 (IP검사)

본문

 

작성: freeimage.kr 김성대

그누보드에서 CSRF 보안 결함 으로 인해 다른 PC 관리자로 로그인 방지하는방법 (IP검사)
방법 로그인할때 회원정보의 mb_10 필드에 접속시 IP를 저장해두고
common 에서 $member 를 읽을때 현재 IP 와 비교하고 틀리면 로그아웃 처리함..

1. /bbs/login_check.php 에서

// 회원아이디 세션 생성
set_session('ss_mb_id', $mb[mb_id]); 다음줄에 추가한다..

========================
//CSRF 보안 결함을 방지하기위해 다 IP에서 로그인시 DB 정보와 비교해서 다른 IP면 세션 종료하기
$sql="update {$g4['member_table']} set mb_10='".$_SERVER['REMOTE_ADDR']."'where mb_id = '$mb[mb_id]' ";
sql_query($sql);
========================


2. common.php 에서

// 회원이 아니라면 권한을 방문객 권한으로 함
if (!($member['mb_id']))
    $member['mb_level'] = 1;
else
    $member['mb_dir'] = substr($member['mb_id'],0,2);

다음줄에 추가한다.

========================
//로그인된경우 마지막 IP와 비교해서 다르면 자동 로그아웃
if ($member['mb_id'] && $member['mb_10'] && $member['mb_10']!=$_SERVER['REMOTE_ADDR']) {
 session_unset(); // 모든 세션변수를 언레지스터 시켜줌
 session_destroy(); // 세션해제함
 set_cookie("ck_mb_id", "", 0);
 set_cookie("ck_auto", "", 0);
 $sql="update {$g4['member_table']} set mb_10='' where mb_id = '$member[mb_id]' ";
 sql_query($sql);
 echo "<script language='javascript'> window.location='/bbs/login.php'; </script>";
 exit;
}
========================

추천
1

댓글 3개

관리자가 다수일경우 허용된 아이피만 조작이 가능할까요?
만약에 최고관리자외에 A,B,C라는 임시관리자가 있다면,최고관리자가 최초 로그인된 아이피를 임시허용을 하고,(단 공인아이피외에 사설아이피일경우 대역단까지는 허용해주고) -> 당연,인증버튼으로 인증을 해줘야 하겠죠.그리고 db와 조회해서 임시관리자의 아이피단이 틀리면,자동 블럭
세션,ukey(유아원팁),CSRF보안,허가된 아이피,가입PID값 이렇게 하면 어떨까요.

그리고 다른 보드 보니까,멤버,또는 관리자 생성시 pid값(만약 멤버생성일이 2008년 12월12일이면:pid값 : 2008121200321)을 가지고도 체크하더라구요.타임스템프인가 먼가?
차라리 관리자 전용 경로는 다른 외부로그인으로 빼고,관리자 로그인시 일반 페이지에서 로그인은 불가능하게 하고 , 외부경로에서 로그인할때,CSRF보안하고 PID값입력,그리고 주민등록번호 입력;;(호적등본2통,면허증사본,통장사본제출;;ㅎㅎ;)
전체 15 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT