다음은 php.ini의 원래 설명과 기본 구성입니다.
; open_basedir을 설정하면 모든 파일 작업이 정의된 디렉터리
이하로 제한됩니다. 또는
; 이 지시어는
, 안전 모드가 켜져 있는지 여부에 영향을 받지 않습니다.
open_basedir =
open_basedir은 파일에 액세스하는 데 사용할 수 있습니다. 범위는 지정된 영역으로 제한되며 일반적으로 해당 홈 디렉터리의 경로이거나 "." 기호를 사용하여 현재 디렉터리를 나타낼 수 있습니다. open_basedir에 지정된 제한 사항은 실제로 디렉터리 이름이 아니라 접두사입니다.
예: "open_basedir = /dir/user"인 경우 "/dir/user" 및 "/dir/user1" 디렉터리에 모두 액세스할 수 있습니다
. 따라서 지정된 디렉토리에만 액세스를 제한하려면 경로 이름을 슬래시로 끝내십시오. 예를 들어 다음과 같이 설정합니다.
"open_basedir = /dir/user/"
open_basedir은 동시에 여러 디렉터리를 설정할 수도 있습니다. Windows에서는 세미콜론을 사용하여 디렉터리를 구분하고
콜론을 사용하여 디렉터리를 구분합니다. 다른 시스템에서는. Apache 모듈에서 작동할 때 상위 디렉토리의 open_basedir 경로가 자동으로 상속됩니다.
Apache에서 지정된 사용자에 대해 독립적인 설정을 지정하는 세 가지 방법이 있습니다.
(a) Apache의 httpd.conf에서 해당 디렉터리 설정 방법:
php_admin_value open_basedir /usr/local/apache/ htdocs/
# 여러 디렉터리를 설정하려면 다음을 참조하세요.
php_admin_value open_basedir /usr/local/apache/htdocs/:/tmp/
(b) Apache의 httpd.conf에서 VirtualHost의 해당 설정 방법 :
php_admin_value open_basedir /usr/local/apache/htdocs/
#여러 디렉터리를 설정하려면 다음을 참조하세요.
php_admin_value open_basedir /var/www/html/:/var/tmp/
(c) VirtualHost에서 open_basedir을 설정한 후에는 이 가상 사용자는 더 이상 php.ini
의 open_basedir 설정 값을 자동으로 상속하지 않으므로 유연한 구성 조치를 취하기 어렵기 때문에 다음과 같이 하는 것이 좋습니다. VirtualHost에서 설정하지 않음
이 제한을 설정합니다. 예를 들어 php.ini에서 open_basedir = .:/tmp/를 설정할 수 있습니다. 이 설정은
이 현재 디렉터리(즉, 디렉터리)에 액세스할 수 있음을 의미합니다.
참고: php.ini에 설정된 파일 업로드용 임시 디렉터리가 /tmp/인 경우
설정할 때 /tmp/를 포함해야 합니다. 그렇지 않으면 업로드가 실패합니다. PHP의 새 버전에서는 "open_basedir 제한이 적용됩니다"라는 메시지가 표시됩니다. "
경고 메시지가 표시되지만 move_uploaded_file() 함수는 여전히 /tmp/ 디렉터리에 업로드된 파일을 성공적으로 제거할 수 있습니다.
이것이 취약점인지 새로운 기능인지 알 수 없습니다.
ShopEx472 버전 구성:
open_basedir = "D:/Server;../catalog;../include;../.. /home;../syssite;../템플릿;../언어;../../언어;.. /../../언어;../../../../언어 "
위 내용은 베이스밴드 콘텐츠를 포함하여 베이스밴드 PHP 구성 파일에서 open_basedir 옵션의 역할을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.