HTML/CSS

웹문서 유출방지처리

부니기 2008. 5. 24. 03:43
1. 데모 : http://www.ihelpers.co.kr/programming/work/view.html

2. 소스분석

  • view.html

    뷰어 HTML 문서로써 Referer의 활용을 위하여 iframe으로 view.php을 호출한다.

    <HTML>
    <HEAD>
    <TITLE>view</TITLE>
    </HEAD>
    <BODY>
    <iframe src="view.php?file=webdoc.html" height="100%" width="100%">
    </BODY>
    </HTML>



  • view.php

    view.html 이외의 경로에서 호출( 비정상적인 호출) 되었을 경우를 처리하는 프로그램으로
    $HTTP_REFERER는 해당 page을 호출한 URL 정보를 가지고 있는 Header변수이다.

    <?
    if($HTTP_REFERER == "http://www.ihelpers.co.kr/programming/work/view.html"){
    $docdir = "/programming/work/";
    $url = $docdir . $file;
    Header("Location: $url");
    }
    ?>



  • sourcelock.js

    마우스 오른쪽키 및 문서선택을 제어하기 위한 자바스크립트 코드이다.


    if (window.Event) // 넷스케이프에서만 대문자 E.
      document.captureEvents(Event.MOUSEUP); // mouse up 이벤트를 잡음

    function nocontextmenu() { // IE
       event.cancelBubble = true
       event.returnValue = false;
       return false;
    }

    function norightclick(e) // Others
    {
       if (window.Event) {
          if (e.which == 2 || e.which == 3)
             return false;
       } else
          if (event.button == 2 || event.button == 3){
             event.cancelBubble = true
             event.returnValue = false;
             return false;
          }
    }

    document.oncontextmenu = nocontextmenu;
    document.onmousedown = norightclick;
    document.onselectstart=new Function("return false");
    document.ondragstart=new Function("return false");




  • webdoc.html

    유출방지문서로써 sourcelock.js을 호출하고 있다.

    <HTML>
    <HEAD>
    <TITLE>중요 Web 문서</TITLE>
    <script language="javascript" src="/lib/sourcelock.js"></script>
    </HEAD>
    <BODY>
    <pre>
    중요 Web 문서

    * CTRL-A, MouseDrag, 소스보기를 해보십시요.
    </pre>
    </BODY>
    </HTML>


3. 다운로드 : http://www.ihelpers.co.kr/programming/work/sourcelock.zip