php open_basedir安全與使用詳解

來源:互聯網
上載者:User


如下是php.ini中的原文說明以及預設配置:
; 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可將使用者訪問檔案的活動範圍限制在指定的地區,通常是其家目錄的路徑,也
可用符號"."來代表目前的目錄。注意用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中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 restriction in effect"
警告資訊, 但move_uploaded_file()函數仍然可以成功取出/tmp/目錄下的上傳檔案,不知道
這是漏洞還是新功能.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.