메뉴 닫기

PHP 보안설정중 open_basedir 적용하기

기본적으로 웹사이트를 운영할 때 가장 많이 사용을 하고 있는 PHP 의 보안설정에 대해서 알아보겠습니다

몇가지 많은 설정들이 있지만 그중에서 open_basedir 옵션이라는 항목에 대해서 확인

 

  1. 보안과 안전모드에 관련된 지시어 종류

아래 항목은 php.net 공식 사이트에서 PHP 보안과 안전모드에 관련되 지시어 종류 입니다

이중 open_basedir 이란 지시어에 대해서 설정하는 방법을 알아 보겠습니다

 

  • 참고 URL
  • http://php.net/manual/kr/ini.sect.safe-mode.php
지시어명 기본값 변경값 변경점
safe_mode “0” PHP_INI_SYSTEM PHP 6.0.0에서 제거.
safe_mode_gid “0” PHP_INI_SYSTEM PHP 4.1.0부터 존재. PHP 6.0.0에서 제거.
safe_mode_include_dir NULL PHP_INI_SYSTEM PHP 4.1.0부터 존재. PHP 6.0.0에서 제거.
safe_mode_exec_dir “” PHP_INI_SYSTEM PHP 6.0.0에서 제거.
safe_mode_allowed_env_vars “PHP_” PHP_INI_SYSTEM PHP 6.0.0에서 제거.
safe_mode_protected_env_vars “LD_LIBRARY_PATH” PHP_INI_SYSTEM PHP 6.0.0에서 제거.
open_basedir NULL PHP_INI_ALL PHP < 5.3.0에서 PHP_INI_SYSTEM
disable_functions “” php.ini PHP 4.0.1부터 존재.
disable_classes “” php.ini PHP 4.3.2부터 존재.

 

2. open_basedir 지시어란?

open_basedir을 설정하시게 되면 해당하는 디렉토리 및 하위 디렉토리에서만 파일을 열 수 있도록 제한합니다. 

1번항목의 safe_mode 지시어를 이용하면 좋겠지만 해당 옵션으로 인하여 대부분의 설치형 보드(xe, wp)등을 이용할 수 없게 됩니다

해당 지시어를 설정함으로써 일반적으로 사용자가 많은 호스팅 시스템에서  fopen, fread 등의 함수를 좀더 안전하게 사용을 할 수 있도록 할수 있습니다

 

3. open_basedir 설정 방법

 

  • 기본적인 설정 방법   php_admin_value open_basedir /home/smileserv

 

  • 가상호스트 설정

<Directory /home/smileserv/*>
<IfModule php5_module>
php_admin_value open_basedir  /home/smileserv:/tmp
</IfModule>
</Directory>

 

위와 같이 가상호스트 또는 httpd.conf 파일에 적용을 하면 호스팅 환경을 운영하면서 php 보안을 100%로 예방하는건 아니어도

 

보안적인 측면에 도움을 주는 설정 방법 이다

 

 위 방법은 PHP 함수들에만 적용이 되는 설정이며,  system 명령어 등을 제어하지는 못한다

 

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x