백도어 URL 은 URL를 통해 직접 리소스에 엑세스할 수 있는 것을 말합니다. 다음 예제 내용이 있다고 가정한다면, 상식적으로 test.php 파일을 접속하도록 되어 있지만, 이 백도어 URL은 cal.php 파일인 다이렉트로 접속해서 파일을 변조해 버립니다.

<?php 
 /* 
 test.php ----
 */

 $auth = false; 

 $auth = @$_POST['userid']; 

 include "cal.php"; 
 /* 
 cal.php
 // --------------------------------------------- 
 $name = $auth; 
 echo $name; 
 --------------------------------------------- //
 */  
 ?>

백도어 URL를 막기 위해 인쿠르드파일을 루트 바깥에 저장해 두거나 아니면 상수를 사용하는 방법이 있습니다. 이렇게 함으로써 직접적인 파일 접근을 차단할 수 있을 것입니다.

<?php 
 $auth = false; 
 $auth = @$_POST['userid']; 

 // 상수 정의 
 if(!defined("USER_URL")){ 
    $salt = 'LEFTSALT'; 
    $uniqid = uniqid(); 
    $USER_URL = sha1(md5($salt . '_' . md5($uniqid . '_' . $salt))); 
    define("USER_URL", $USER_URL); 
 } 

 include "cal.php"; 
 /* 
 cal.php 
 // --------------------------------------------- 
 if(!defined("USER_URL")){ 
    echo "정상적인 방법으로 접근해 주세요."; 
    exit(); 
 } 
 $name = $auth; 
 echo $name; 
 --------------------------------------------- // 
 */ 
 ?>

0 댓글