>백엔드 개발 >PHP 튜토리얼 >PHP 구성 파일에서 open_basedir 옵션의 역할

PHP 구성 파일에서 open_basedir 옵션의 역할

高洛峰
高洛峰원래의
2017-01-06 14:51:561836검색

다음은 php.ini의 원래 설명과 기본 구성입니다.
; open_basedir을 설정하면 모든 파일 작업을 정의된 디렉토리
이하로 제한합니다. per -directory 또는 per-virtualhost 웹 서버 구성 파일입니다.
; 안전 모드가 켜져 있는지 여부에 따라 영향을 받지 않습니다.
open_basedir =
사용자 파일의 활성 범위는 지정된 영역(일반적으로 홈 디렉터리의 경로)으로 제한되며 기호 "."를 사용하여 현재 디렉터리를 나타낼 수도 있습니다. open_basedir에 지정된 제한 사항은 실제로 디렉터리 이름이 아니라 접두사입니다.
예: "open_basedir = /dir/user"인 경우 "/dir/user" 및 "/dir/user1" 디렉터리에 모두 액세스할 수 있습니다
. 따라서 지정된 디렉토리에만 액세스를 제한하려면 경로 이름을 슬래시로 끝내십시오. 예를 들어 다음과 같이 설정합니다.
"open_basedir = /dir/user/"

open_basedir은 동시에 여러 디렉터리를 설정할 수도 있습니다. Windows에서는 세미콜론을 사용하고 Windows에서는
콜론을 사용하여 디렉터리를 구분합니다. 다른 시스템. 별도의 디렉토리. Apache 모듈에서 작동할 때 상위 디렉토리의 open_basedir 경로가 자동으로 상속됩니다.

Apache에서 지정된 사용자에 대해 독립적인 설정을 지정하는 세 가지 방법이 있습니다.

(a) Apache의 httpd.conf에 있는 Directory의 해당 설정 방법:

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 스크립트 파일이 있는 디렉터리)와 /tmp/ 디렉터리에 액세스할 수 있습니다.

참고: 파일 업로드를 위한 임시 디렉터리가 php.ini가 /tmp/이면 open_basedir을 설정할 때
/tmp/를 포함해야 합니다. 그렇지 않으면 업로드가 실패합니다. 새 버전의 php에서는 "open_basedir 제한 적용 중"
경고 메시지가 표시되지만 move_uploaded_file() 함수는 여전히 /tmp/ 디렉터리에 업로드된 파일을 성공적으로 제거할 수 있습니다.
이것이 취약점인가요, 아니면 새로운 기능인가요?

ShopEx472 버전 구성:

open_basedir = "D:/Server;../catalog;../include;../../ home;../syssite;../templates;../언어;../../언어 ;../../../언어;../../../../언어"

PHP 구성 파일에서 open_basedir 옵션의 역할과 관련된 추가 기사를 보려면 다음을 참조하세요. PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.