php開啟安全模式後禁用的函式

2021-09-08 23:16:47 字數 3858 閱讀 2367

1<?

php2

ini_set("

safe_mode",

true);3

?>

表 42-2. 安全模式限制函式

函式名限制

dbmopen()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。

dbase_open()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。

filepro()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。

filepro_rowcount()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。

filepro_retrieve()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。

ifx_*

sql_safe_mode 限制, (!= safe mode)

ingres_*

sql_safe_mode 限制, (!= safe mode)

mysql_*

sql_safe_mode 限制, (!= safe mode)

pg_loimport()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。

posix_mkfifo()檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。

putenv()遵循 ini 設定的 safe_mode_protected_env_vars 和 safe_mode_allowed_env_vars 選項。請參考putenv()函式的有關文件。

move_uploaded_file()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。

chdir()檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。

dl()本函式在安全模式下被禁用。

backtick operator

本函式在安全模式下被禁用。

shell_exec()(在功能上和 backticks 函式相同)

本函式在安全模式下被禁用。

exec()只能在 safe_mode_exec_dir 設定的目錄下進行執行操作。基於某些原因,目前不能在可執行物件的路徑中使用 ..。escapeshellcmd()將被作用於此函式的引數上。

system()只能在 safe_mode_exec_dir 設定的目錄下進行執行操作。基於某些原因,目前不能在可執行物件的路徑中使用 ..。escapeshellcmd()將被作用於此函式的引數上。

passthru()只能在 safe_mode_exec_dir 設定的目錄下進行執行操作。基於某些原因,目前不能在可執行物件的路徑中使用 ..。escapeshellcmd()將被作用於此函式的引數上。

popen()只能在 safe_mode_exec_dir 設定的目錄下進行執行操作。基於某些原因,目前不能在可執行物件的路徑中使用 ..。escapeshellcmd()將被作用於此函式的引數上。

fopen()檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。

mkdir()檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。

rmdir()檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。

rename()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。 檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。

unlink()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。 檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。

copy()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。 檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。 (onsourceandtarget)

chgrp()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。

chown()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。

chmod()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。 另外,不能設定 suid、sgid 和 sticky bits

touch()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。 檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。

symlink()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。 檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。 (注意:僅測試 target)

link()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。 檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。 (注意:僅測試 target)

apache_request_headers()在安全模式下,以「authorization」(區分大小寫)開頭的標頭將不會被返回。

header()在安全模式下,如果設定了 www-authenticate,當前指令碼的 uid 將被新增到該標頭的 realm 部分。

php_auth 變數

在安全模式下,變數php_auth_userphp_auth_pwphp_auth_type$_server中不可用。但無論如何,您仍然可以使用remote_user來獲取使用者名稱(user)。(注意:僅 php 4.3.0 以後有效)

highlight_file(),show_source()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。 檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。 (注意,僅在 4.2.1 版本後有效)

parse_ini_file()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 uid(所有者)。 檢查被操作的目錄是否與正在執行的指令碼有相同的 uid(所有者)。 (注意,僅在 4.2.1 版本後有效)

set_time_limit()在安全模式下不起作用。

max_execution_time

在安全模式下不起作用。

mail()在安全模式下,第五個引數被遮蔽。(注意,僅自 php 4.2.3 起受影響)

??

前幾天看公司面試題的時候有看到這樣的題目,有一些函式還是能記得的,今天剛好查了一下手冊,在這裡記下一筆

php安全設定 禁用危險函式

在 php.ini 中找到 disable functions 這一行,在其後面新增需要禁止的危險函式名,以英文逗號分隔 disable functions phpinfo,set time limit,system,exec,shell exec,passthru,proc open,proc c...

PHP中禁用cookie後的session

我們知道當客戶端瀏覽器把cookie禁掉後,伺服器端的session是沒有辦法正常使用的。因為伺服器端的session是通過sessionid來區分不同使用者的session的,而這個sessionid就是通過客戶端的cookie傳遞到伺服器端的,更嚴格地說,因為在php使用session star...

PHP安全程式設計之PHP的安全模式

php的safe mode選項的目的是為了解決本小節前後所述的某些問題。但是,在php層面上去解決這類問題從架構上來看是不正確的,正如php手冊所述 當安全模式生效時,php會對正在執行的指令碼所讀取 或所操作 檔案的屬主進行檢查,以保證與該指令碼的屬主是相同的。雖然這樣確實可以防範本章中的很多例子...