php安全模式:safe_mode=on|off
啟用safe_mode指令將對在共享環境中使用php時可能有危險的語言特性有所限制。可以將safe_mode是指為布林值on來啟用,或者設定為 off禁用。它會比較執行指令碼uid(使用者id)和指令碼嘗試訪問的檔案的uid,以此作為限制機制的基礎。如果uid相同,則執行指令碼;否則,指令碼失敗。
具體地,當啟用安全模式時,一些限制將生效。
1、所有輸入輸出函式(例如fopen()、file()和require())的適用會受到限制,只能用於與呼叫這些函式的指令碼有相同擁有者的檔案。例如,假定啟用了安全模式,如果mary擁有的指令碼呼叫fopen(),嘗試開啟由jonhn擁有的乙個檔案,則將失敗。但是,如果mary不僅擁有呼叫 fopen()的指令碼,還擁有fopen()所呼叫的檔案,就會成功。
2、如果試圖通過函式popen()、system()或exec()等執行指令碼,只有當指令碼位於safe_mode_exec_dir配置指令指定的目錄才可能。
3、http驗證得到進一步加強,因為驗證指令碼用於者的uid劃入驗證領域範圍內。此外,當啟用安全模式時,不會設定php_auth。
4、如果適用mysql資料庫伺服器,鏈結mysql伺服器所用的使用者名稱必須與呼叫mysql_connect()的檔案擁有者使用者名稱相同。
安全模式和禁用的函式
下面是啟用safe_mode指令時受影響的函式、變數及配置指令的完整列表:
apache_request_headers() backticks()和反引號操作符 chdir()
chgrp() chmode() chown()
copy() dbase_open() dbmopen()
dl() exec() filepro()
filepro_retrieve() filepro_rowcount() fopen()
header() highlight_file() ifx_*
ingres_* link() mail()
max_execution_time() mkdir() move_uploaded_file()
mysql_* parse_ini_file() passthru()
pg_lo_import() popen() posix_mkfifo()
putenv() rename() zmdir()
set_time_limit() shell_exec() show_source()
symlink() system() touch()
以下是一些和安全模式相關的配置選項
safe_mode_gid=on|off
次指令會修改安全模式的行為,即從執行前驗證uid改為驗證組id。例如,如果mary和john處於相同的使用者組,則mary的指令碼可以對john的檔案呼叫fopen()。
safe_mode_include_dir=string
可以使用指令safe_mode_include_dir指示多個路徑,啟用安全模式時在這些路徑中將忽略安全模式。例如,你可以使用此函式指定乙個包含不同模板的目錄,致謝模板可能會繼成到一些使用者**。可以指定多個目錄,在基於unix的系統各目錄用冒號分隔,在windows中用分號分隔。
注意,如果指定某個路徑但未包含最後的斜線,則該路徑下的所有目錄都會忽略安全模式設定。例如,如果設定次指令為/home /configuration,表示/home/configuration/templates/和/home/configureation /passwords都排除在安全模式限制之外。因此,如果只是要排除乙個目錄或一組目錄不受安全模式設定的限制,要確保每個目錄都包括最後的斜線。
safe_mode_env_vars=string
當啟用安全模式時,可以只用次指令允許執行使用者的指令碼修改某些環境變數。可以允許修改多個變數,每個變數之間用逗號分隔。
safe_mode_exec_dir=string
次指令指定一些目錄,其中的系統程式可以通過諸如system()、exec()或passthru()等函式執行。為此必須啟用安全模式。此指令有乙個奇怪的地方,在所有作業系統中(包括windows),都必須使用斜線(/)作為目錄的分隔符。
safe_mode_protected_env_vars=string
php單例模式詳細介紹
1 單例模式的概念 單例模式是指整個應用中某個類只有乙個物件例項的設計模式。具體來說,作為物件的建立方式。單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統全域性的提供這個例項。它不會建立例項副本,而是會向單例類內部儲存的例項返回乙個引用。2 單例模式的特點 單例模式的主要特點是 三私一公...
PHP單例模式詳細介紹
單例模式的概念 單例模式是指整個應用中某個類只有乙個物件例項的設計模式。具體來說,作為物件的建立方式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統全域性的提供這個例項。它不會建立例項副本,而是會向單例類內部儲存的例項返回乙個引用。單例模式的特點 單例模式的主要特點是 三私一公 需要乙...
php 關閉安全模式 php安全模式詳解
php本身再老版本有一些問題,比如在 php4.3.10和php5.0.3以前有一些比較嚴重的bug,所以推薦使用新版。另外,目前鬧的轟轟烈烈的sql injection也是在php上有很多利用方式,所以要保證 安全,php 編寫是一方面,php的配置更是非常關鍵。我們php手手工安裝的,php的預...