It seems that glob and file_exists functions are also restricted in safe-mode.
This is a still probably incomplete and possibly incorrect listing of the functions limited by safe mode.
Function | Limitations |
---|---|
dbmopen() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. |
dbase_open() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. |
filepro() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. |
filepro_rowcount() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. |
filepro_retrieve() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. |
ifx_* | sql_safe_mode restrictions, (!= safe mode) |
ingres_* | sql_safe_mode restrictions, (!= safe mode) |
mysql_* | sql_safe_mode restrictions, (!= safe mode) |
pg_lo_import() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. |
posix_mkfifo() | Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. |
putenv() | Obeys the safe_mode_protected_env_vars and safe_mode_allowed_env_vars ini-directives. See also the documentation on putenv() |
move_uploaded_file() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. |
chdir() | Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. |
dl() | Diese Funktion steht im Safe Mode nicht zur Verfügung. |
backtick operator | Diese Funktion steht im Safe Mode nicht zur Verfügung. |
shell_exec() (functional equivalent of backticks) | Diese Funktion steht im Safe Mode nicht zur Verfügung. |
exec() | You can only execute executables within the safe_mode_exec_dir.
For practical reasons it's currently not allowed to have
.. components in the path to the executable.
escapeshellcmd() is executed on the argument of this
function. |
system() | You can only execute executables within the safe_mode_exec_dir.
For practical reasons it's currently not allowed to have
.. components in the path to the executable.
escapeshellcmd() is executed on the argument of this
function. |
passthru() | You can only execute executables within the safe_mode_exec_dir.
For practical reasons it's currently not allowed to have
.. components in the path to the executable.
escapeshellcmd() is executed on the argument of this
function. |
popen() | You can only execute executables within the safe_mode_exec_dir.
For practical reasons it's currently not allowed to have
.. components in the path to the executable.
escapeshellcmd() is executed on the argument of this
function. |
fopen() | Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. |
mkdir() | Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. |
rmdir() | Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. |
rename() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. |
unlink() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. |
copy() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript
bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript
selbst. Überprüft, ob das Verzeichnis, in dem das Skript
ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. (on
source and
target ) |
chgrp() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. |
chown() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. |
chmod() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. In addition, you cannot set the SUID, SGID and sticky bits |
touch() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. |
symlink() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. (note: only the target is checked) |
link() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. (note: only the target is checked) |
apache_request_headers() | In safe mode, headers beginning with authorization
(case-insensitive) will not be returned. |
header() | In safe mode, the uid of the script is added to the
realm part of the
WWW-Authenticate header if you set this
header (used for HTTP Authentication). |
PHP_AUTH variables | In safe mode, the variables PHP_AUTH_USER, PHP_AUTH_PW, and AUTH_TYPE are not available in $_SERVER. Regardless, you can still use REMOTE_USER for the USER. (note: only affected since PHP 4.3.0) |
highlight_file(), show_source() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. |
parse_ini_file() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. |
set_time_limit() | Has no effect when PHP is running in Safe Mode. |
max_execution_time | Has no effect when PHP is running in Safe Mode. |
mail() | In safe mode, the fifth parameter is disabled. |
session_start() |
The owner of a script must be the same as owner of a session.save_path directory if
the default files session.save_handler is
used.
|
All filesystem and stream functions. | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst. Überprüft, ob das Verzeichnis, in dem das Skript ausgeführt werden soll, die gleiche UID (Eigentümer) hat wie das Skript selbst. (see the safe_mode_include_dir php.ini option. |
refers to the previuos posting of
bananarama
15-May-2006 10:11
"all file-handling and -management functions are restricted, just in case someones wondering why they're not listed here.
a script can run these functions on files without errors, if the files were created (are owned) by the same UID, the script was created (is owned) by."
.... or if the directory, in which the file is located, has the same UID as the script, which tries to use a file in that directory...