以下安全模式列表可能不完整或不正确。
表格 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 部分。 |
| PHP_AUTH 变量 | 在安全模式下,变量 PHP_AUTH_USER、PHP_AUTH_PW 和 PHP_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 及以上版本有效) |
| 任何使用 php4/main/fopen_wrappers.c 的函数 | ?? |