PHP 配置文件中open_basedir選項(xiàng)作用
更新時(shí)間:2009年07月19日 01:31:15 作者:
open_basedir: 將用戶可操作的文件限制在某目錄下
如下是php.ini中的原文說(shuō)明以及默認(rèn)配置:
; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory or
; per-virtualhost web server configuration file. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
open_basedir = .
open_basedir可將用戶訪問(wèn)文件的活動(dòng)范圍限制在指定的區(qū)域,通常是其家目錄的路徑,也
可用符號(hào)"."來(lái)代表當(dāng)前目錄。注意用open_basedir指定的限制實(shí)際上是前綴,而不是目錄名。
舉例來(lái)說(shuō): 若"open_basedir = /dir/user", 那么目錄 "/dir/user" 和 "/dir/user1"都是
可以訪問(wèn)的。所以如果要將訪問(wèn)限制在僅為指定的目錄,請(qǐng)用斜線結(jié)束路徑名。例如設(shè)置成:
"open_basedir = /dir/user/"
open_basedir也可以同時(shí)設(shè)置多個(gè)目錄, 在Windows中用分號(hào)分隔目錄,在任何其它系統(tǒng)中用
冒號(hào)分隔目錄。當(dāng)其作用于Apache模塊時(shí),父目錄中的open_basedir路徑自動(dòng)被繼承。
有三種方法可以在Apache中為指定的用戶做獨(dú)立的設(shè)置:
(a) 在Apache的httpd.conf中Directory的相應(yīng)設(shè)置方法:
php_admin_value open_basedir /usr/local/apache/htdocs/
#設(shè)置多個(gè)目錄可以參考如下:
php_admin_value open_basedir /usr/local/apache/htdocs/:/tmp/
(b) 在Apache的httpd.conf中VirtualHost的相應(yīng)設(shè)置方法:
php_admin_value open_basedir /usr/local/apache/htdocs/
#設(shè)置多個(gè)目錄可以參考如下:
php_admin_value open_basedir /var/www/html/:/var/tmp/
(c) 因?yàn)閂irtualHost中設(shè)置了open_basedir之后, 這個(gè)虛擬用戶就不會(huì)再自動(dòng)繼承php.ini
中的open_basedir設(shè)置值了,這就難以達(dá)到靈活的配置措施, 所以建議您不要在VirtualHost
中設(shè)置此項(xiàng)限制. 例如,可以在php.ini中設(shè)置open_basedir = .:/tmp/, 這個(gè)設(shè)置表示允許
訪問(wèn)當(dāng)前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄.
請(qǐng)注意: 若在php.ini所設(shè)置的上傳文件臨時(shí)目錄為/tmp/, 那么設(shè)置open_basedir時(shí)就必須
包含/tmp/,否則會(huì)導(dǎo)致上傳失敗. 新版php則會(huì)提示"open_basedir restriction in effect"
警告信息, 但move_uploaded_file()函數(shù)仍然可以成功取出/tmp/目錄下的上傳文件,不知道
這是漏洞還是新功能.
針對(duì)ShopEx472版本的配置:
open_basedir = "D:/Server;../catalog;../include;../../home;../syssite;../templates;../language;../../language;../../../language;../../../../language"
; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory or
; per-virtualhost web server configuration file. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
open_basedir = .
open_basedir可將用戶訪問(wèn)文件的活動(dòng)范圍限制在指定的區(qū)域,通常是其家目錄的路徑,也
可用符號(hào)"."來(lái)代表當(dāng)前目錄。注意用open_basedir指定的限制實(shí)際上是前綴,而不是目錄名。
舉例來(lái)說(shuō): 若"open_basedir = /dir/user", 那么目錄 "/dir/user" 和 "/dir/user1"都是
可以訪問(wèn)的。所以如果要將訪問(wèn)限制在僅為指定的目錄,請(qǐng)用斜線結(jié)束路徑名。例如設(shè)置成:
"open_basedir = /dir/user/"
open_basedir也可以同時(shí)設(shè)置多個(gè)目錄, 在Windows中用分號(hào)分隔目錄,在任何其它系統(tǒng)中用
冒號(hào)分隔目錄。當(dāng)其作用于Apache模塊時(shí),父目錄中的open_basedir路徑自動(dòng)被繼承。
有三種方法可以在Apache中為指定的用戶做獨(dú)立的設(shè)置:
(a) 在Apache的httpd.conf中Directory的相應(yīng)設(shè)置方法:
php_admin_value open_basedir /usr/local/apache/htdocs/
#設(shè)置多個(gè)目錄可以參考如下:
php_admin_value open_basedir /usr/local/apache/htdocs/:/tmp/
(b) 在Apache的httpd.conf中VirtualHost的相應(yīng)設(shè)置方法:
php_admin_value open_basedir /usr/local/apache/htdocs/
#設(shè)置多個(gè)目錄可以參考如下:
php_admin_value open_basedir /var/www/html/:/var/tmp/
(c) 因?yàn)閂irtualHost中設(shè)置了open_basedir之后, 這個(gè)虛擬用戶就不會(huì)再自動(dòng)繼承php.ini
中的open_basedir設(shè)置值了,這就難以達(dá)到靈活的配置措施, 所以建議您不要在VirtualHost
中設(shè)置此項(xiàng)限制. 例如,可以在php.ini中設(shè)置open_basedir = .:/tmp/, 這個(gè)設(shè)置表示允許
訪問(wèn)當(dāng)前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄.
請(qǐng)注意: 若在php.ini所設(shè)置的上傳文件臨時(shí)目錄為/tmp/, 那么設(shè)置open_basedir時(shí)就必須
包含/tmp/,否則會(huì)導(dǎo)致上傳失敗. 新版php則會(huì)提示"open_basedir restriction in effect"
警告信息, 但move_uploaded_file()函數(shù)仍然可以成功取出/tmp/目錄下的上傳文件,不知道
這是漏洞還是新功能.
針對(duì)ShopEx472版本的配置:
open_basedir = "D:/Server;../catalog;../include;../../home;../syssite;../templates;../language;../../language;../../../language;../../../../language"
相關(guān)文章
php使用filter_var函數(shù)判斷郵箱,url,ip格式示例
這篇文章主要介紹了php使用filter_var函數(shù)判斷郵箱,url,ip格式,簡(jiǎn)單分析了php filter_var函數(shù)的功能、參數(shù),并結(jié)合實(shí)例形式給出了filter_var函數(shù)判斷郵箱,url,ip格式的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
PHP 數(shù)據(jù)庫(kù) 常見(jiàn)問(wèn)題小結(jié)
揭露 PHP 應(yīng)用程序中出現(xiàn)的五個(gè)常見(jiàn)數(shù)據(jù)庫(kù)問(wèn)題 —— 包括數(shù)據(jù)庫(kù)模式設(shè)計(jì)、數(shù)據(jù)庫(kù)訪問(wèn)和使用數(shù)據(jù)庫(kù)的業(yè)務(wù)邏輯代碼 —— 以及它們的解決方案。2009-06-06
php站內(nèi)搜索并高亮顯示關(guān)鍵字的實(shí)現(xiàn)代碼
將sql語(yǔ)句中包含的%$info%交給DBMS執(zhí)行的時(shí)候,他會(huì)查找字段中含有變量$info的值的信息2011-12-12
ThinkPHP like模糊查詢,like多匹配查詢,between查詢,in查詢,一般查詢書寫方法
ThinkPHP的數(shù)據(jù)庫(kù)條件查詢語(yǔ)句有字符串式,數(shù)組式書寫方法,字符串式即是原生式而數(shù)組式的查詢語(yǔ)句因書寫方式與特定字符的原因比較復(fù)雜,今天為大家講解一下ThinkPHP數(shù)組式查詢語(yǔ)句的書寫方法2018-09-09
highchart數(shù)據(jù)源縱軸json內(nèi)的值必須是int(詳解)
下面小編就為大家?guī)?lái)一篇highchart數(shù)據(jù)源縱軸json內(nèi)的值必須是int(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
PHP識(shí)別二維碼的方法(php-zbarcode安裝與使用)
這篇文章主要介紹了PHP識(shí)別二維碼的方法,通過(guò)安裝ImageMagick和php-zbarcode擴(kuò)展實(shí)現(xiàn)針對(duì)二維碼的識(shí)別功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07

