접속자 IP주소 변조 체크

접속자 IP주소 변조 체크

QA

접속자 IP주소 변조 체크

본문

현재 그누보드를 이용해서 사이트 하나를 운영하고 있습니다.

사이트 특성상 중복IP를 체크해야하는 부분이 있어서

php에서 $_SERVER['REMOTE_ADDR']; 를 이용해 따로 중복IP를 관리하고 있습니다.

 

그런데 bbs/visit.insert.inc.php 파일의 12번째 줄에서 아래와 같은 코드를 확인했습니다.

 

// $_SERVER 배열변수 값의 변조를 이용한 SQL Injection 공격을 막는 코드입니다. 110810

    $remote_addr = escape_trim($_SERVER['REMOTE_ADDR']);

    $referer = "";

    if (isset($_SERVER['HTTP_REFERER']))

        $referer = escape_trim(clean_xss_tags($_SERVER['HTTP_REFERER']));

    $user_agent  = escape_trim(clean_xss_tags($_SERVER['HTTP_USER_AGENT']));

    $vi_browser = '';

    $vi_os = '';

    $vi_device = '';

    if(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE) {

        include_once(G5_BBS_PATH.'/visit_browscap.inc.php');

    }

 

이부분에서 궁금한 것을 정리하자면 아래와 같습니다.

Q1. $_SERVER 배열변수 값을 변조한다는 말은 곧 해커가 마음만 먹는다면 $_SERVER['REMOTE_ADDR']; 값을 변조 할 수 있다는 얘긴가요?

 

Q2. 변조가 가능하다면 해당 변조를 통한 SQL injection 공격을 막는 코드는 escape_trim 함수의 역할인가요? 만약 그렇다면 escape_trim 함수는 어떤 원리로 $_SERVER 배열변수가 변조 됐는지 안됐는지 판별 할 수 있는거죠?

 

Q3. 해커가 $_SERVER 배열값을 변조 했을 때 위 보안코드가 작동하면 변조 되기전 본래 IP로 IP주소가 저장되는 건가요?

 

답변주시면 감사하겠습니다!

이 질문에 댓글 쓰기 :

답변 1

SERVER 배열변수 중 PHP_SELF, HTTP_USER_AGENT, HTTP_REFERER 등은 공격자가

변조할 수 있습니다. 이 값을 변조하여 XSS 공격도 가능합니다. escape_trim 함수는

배열변수 값에서 변조된 것을 판별하지 않습니다. 변조됐다고 보고 sql injection 공격을

막기 위해 escape 문자를 추가합니다. 위의 코드가 작동된다고 해서 원래 IP로 복원되는

것은 아니고 REMOTE_ADDR 값이 그대로 저장될 뿐입니다.

그러면 $_SERVER['REMOTE_ADDR']; 값은 해커가 임의로 변조를 못 시키나요?
제 짧은 생각으로는
리스폰패킷은 안받고 그냥 사이트에 트래픽만 올릴 목적이라면
TCP/IP 계층에서 IP부분만 변조 할 수 도 있지 않을까 싶은데..

혹시 만약 어떤 방법이든 $_SERVER['REMOTE_ADDR']; 값을 변조 가능하다면
변조 유무를 체크하는거는 사실상 불가능한건가요?

제가 운영하는 사이트 특성상 IP 변조된 것을 체크하지 못하면
회사에 큰 불이익이 생기기때문에 이부분을 꼭 체크해야만 해서
이렇게 다시하번 질문 올려봅니다ㅜ

답변을 작성하시기 전에 로그인 해주세요.
전체 1,562
QA 내용 검색

회원로그인

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