차림

2007년 2월 4일

PHP include문 파일의 절대 경로와 보안

보안 문제로 서버의 php 환경 설정이 다음과 같이 되어 있는 게 요즘 추세이다.


allow_url_fopen = Off

설정을 이렇게 해두면 include를 이용해 다른 파일을 불러들일 때 http://로 시작하는 절대 경로 URL은 쓸 수 없다. 만약 이런 절대 경로로 파일을 불러들인다면 오류가 뜬다. 따라서 include로 불러들이는 파일 주소는 상대 경로로 써 주어야 한다.

예를 들어, http://abc.com라는 도메인의 루트 디렉토리에 있는 footer.php 파일을 그 아래에 있는 example 디렉토리의 sample.php 파일에서 include를 이용해 불러들인다고 하자.

/
  footer.php

/example/
  sample.php

이 경우 아래와 같이 절대 경로를 적어주게 되면 오류가 뜬다.


sample.php

<?php
  include "http://abc.com/footer.php";  // 이러면 안 된다
?>

include문에는 파일 주소를 아래처럼 상대 경로로 적어주어야 한다.


sample.php

<?php
  include "../footer.php";
?>
목록