手冊如是說:
章 24. 安全模式
目錄 被安全模式限制或遮蔽的函式
php 的安全模式是為了試**決共享伺服器(shared-server)安全問題而設立的。在結構上,試圖在 php 層上解決這個問題是不合理的,但修改 web 伺服器層和作業系統層顯得非常不現實。因此許多人,特別是 isp,目前使用安全模式。
** 24-1. 控制安全模式的設定選項有:
設定選項 預設值
safe_mode off
safe_mode_gid 0
safe_mode_include_dir ""
safe_mode_exec_dir 1
open_basedir ""
safe_mode_allowed_env_vars php_
safe_mode_protected_env_vars ld_library_path
disable_functions ""
當 safe_mode 設定為 on,php 將檢查當前指令碼的擁有者是否和將被檔案函式操作的檔案的擁有者相匹配。例如: -rw-rw-r-- 1 ra**us ra**us 33 jul 1 19:20 script.php
-rw-r--r-- 1 root root 1116 may 26 18:01 /etc/passwd
執行 script.php <?php
readfile('/etc/passwd');
?>
如果安全模式被啟用,則將會導致以下錯誤: warning: safe mode restriction in effect. the script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2
同時,或許會存在這樣的環境,在該環境下,寬鬆的 gid 檢查已經足夠,但嚴格的 uid 檢查反而是不適合的。您可以用 safe_mode_gid 選項來控制這種檢查。如果設定為 on 則進行寬鬆的 gid 檢查;設定為 off(預設值)則進行 uid 檢查。
除了 safe_mode 以外,如果您設定了 open_basedir 選項,則所有的檔案操作將被限制在您指定的目錄下。例如:
php_admin_value open_basedir /docroot
PHP安全程式設計之PHP的安全模式
php的safe mode選項的目的是為了解決本小節前後所述的某些問題。但是,在php層面上去解決這類問題從架構上來看是不正確的,正如php手冊所述 當安全模式生效時,php會對正在執行的指令碼所讀取 或所操作 檔案的屬主進行檢查,以保證與該指令碼的屬主是相同的。雖然這樣確實可以防範本章中的很多例子...
php中安全模式safe mode配置教程
php的安全模式是個非常重要的內嵌的安全機制,能夠控制一些php中的函式,比如system 同時把很多檔案操作函式進行了許可權控制,也不允許對某些關鍵檔案的檔案 1 開啟php的安全模式 php的安全模式是個非常重要的內嵌的安全機制,能夠控制一些php中的函式,比如system 同時把很多檔案操作函...
php中安全模式safe mode配置教程
php的安全模式是個非常重要的內嵌的安全機制,能夠控制一些php中的函式,比如system 同時把很多檔案操作函式進行了許可權控制,也不允許對某些關鍵檔案的檔案,比如 etc passwd,但是預設的php.ini是沒有開啟安全模式的,我們把它開啟 safe mode on 當safe mode開啟...
如何判斷PHP 是執行緒安全還是非執行緒安全的
什麼是執行緒安全與非執行緒安全?執行緒安全就是在多執行緒環境下也不會出現資料不一致,而非執行緒安全就有可能出現資料不一致的情況。執行緒安全由於要確保資料的一致性,所以對資源的讀寫進行了控制,換句話說增加了系統開銷。所以在單執行緒環境中效率比非執行緒安全的效率要低些,但是如果執行緒間資料相關,需要保證...
PHP最簡單的設計模式是?
設計模式經常在composer包中很常見,今天來學習一下php設計模式 單例模式 class sigle public static function getins return self ins 防止被克隆 final protected function clone obj sigle geti...