php安全模式詳細介紹

2022-04-06 23:19:15 字數 2066 閱讀 2014

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的預...