国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php中的安全模式是指的什么?

2024-05-04 23:04:00
字體:
來源:轉載
供稿:網友
手冊如是說:
章 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 rasmus rasmus 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 選項,則所有的文件操作將被限制在您指定的目錄下。例如: <directory /docroot>
php_admin_value open_basedir /docroot
</directory>

如果您在設置了 open_basedir 選項后運行同樣的 script.php,則其結果會是: warning: open_basedir restriction in effect. file is in wrong directory in
/docroot/script.php on line 2



您也可以單獨地屏蔽某些函數。請注意 disable_functions 選項不能在 php.ini 文件外部使用,也就是說您無法在 httpd.conf 文件的按不同虛擬主機或不同目錄的方式來屏蔽函數。 如果我們將如下內容加入到 php.ini 文件: disable_functions readfile,system

則我們會得到如下的輸出: warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2



被安全模式限制或屏蔽的函數
以下安全模式列表可能不完整或不正確。

表格 24-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 設置的目錄下進行執行操作。基于某些原因,目前不能在可執行對象的路徑中使用 ..。
system() 您只能在 safe_mode_exec_dir 設置的目錄下進行執行操作。基于某些原因,目前不能在可執行對象的路徑中使用 ..。
passthru() 您只能在 safe_mode_exec_dir 設置的目錄下進行執行操作。基于某些原因,目前不能在可執行對象的路徑中使用 ..。
popen() 您只能在 safe_mode_exec_dir 設置的目錄下進行執行操作。基于某些原因,目前不能在可執行對象的路徑中使用 ..。
mkdir() 將檢查您將要操作的目錄和正在執行的腳本是否有相同的 uid。
rmdir() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。
rename() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。 將檢查您將要操作的目錄和正在執行的腳本是否有相同的 uid。
unlink() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。 將檢查您將要操作的目錄和正在執行的腳本是否有相同的 uid。
copy() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。 將檢查您將要操作的目錄和正在執行的腳本是否有相同的 uid。 (on source and target)
chgrp() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。
chown() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。
chmod() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。 另外,您不能設置 suid、sgid 和 sticky bits
touch() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。 將檢查您將要操作的目錄和正在執行的腳本是否有相同的 uid。
symlink() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。 將檢查您將要操作的目錄和正在執行的腳本是否有相同的 uid。 (注意:僅測試 target)
link() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。 將檢查您將要操作的目錄和正在執行的腳本是否有相同的 uid。 (注意:僅測試 target)
getallheaders() 在安全模式下,以“authorization”(區分大小寫)開頭的頭信息將不會被返回。警告:getallheaders() 無法在 aol-server 下實現!
header() 在安全模式下,如果您設置了 www-authenticate,當前腳本的 uid 將被添加到該頭信息的 realm 部分。
highlight_file(), show_source() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。 將檢查您將要操作的目錄和正在執行的腳本是否有相同的 uid。 (注意,僅在 4.2.1 版本后有效)
parse_ini_file() 將檢查您將要操作的文件/目錄與正在執行的腳本是否有相同的 uid。 將檢查您將要操作的目錄和正在執行的腳本是否有相同的 uid。 (注意,僅在 4.2.1 版本后有效)
任何使用 php4/main/fopen_wrappers.c 的函數 ??


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武川县| 黄骅市| 科技| 剑阁县| 乐昌市| 叙永县| 黎城县| 团风县| 兰西县| 喜德县| 黄龙县| 淅川县| 莱州市| 玉环县| 新竹县| 神木县| 睢宁县| 新余市| 六盘水市| 延吉市| 闽侯县| 双峰县| 石景山区| 新竹市| 连江县| 巴东县| 南昌县| 仙桃市| 闸北区| 江陵县| 射阳县| 永仁县| 昆山市| 天峻县| 台前县| 榆林市| 湖北省| 大安市| 抚顺县| 阜城县| 克山县|