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
    Posted by 부니기