사이트 내 전체검색
그누보드
[튜닝] CSRF 보안 결함 으로 인해 다른 PC에서 관리자로 로그인 방지하는방법 (IP검사)
최고관리자
https://cmd.kr/gnu/11 URL이 복사되었습니다.

본문

작성: 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;
}
========================

댓글목록

등록된 댓글이 없습니다.

그누보드
190 (4/4P)

Search

Copyright © Cmd 명령어 18.117.75.218