It seems that glob and file_exists functions are also restricted in safe-mode.
safe-modeにより制限される 関数のリストを示します。ただし、まだ、不完全で、不正確である可能性 があります。
関数 | 制限 |
---|---|
dbmopen() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 |
dbase_open() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 |
filepro() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 |
filepro_rowcount() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 |
filepro_retrieve() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 |
ifx_*() | sql_safe_mode restrictions, (!= safe mode) |
ingres_*() | sql_safe_mode restrictions, (!= safe mode) |
mysql_*() | sql_safe_mode restrictions, (!= safe mode) |
pg_lo_import() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 |
posix_mkfifo() | 処理を行うディレクトリが実行するスクリプトと同じ UID を有しているかどうかを確認します。 |
putenv() | iniディレクティブのsafe_mode_protected_env_vars および safe_mode_allowed_env_varsに依存します。 putenv()のドキュメントも参照ください。 |
move_uploaded_file() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 |
chdir() | 処理を行うディレクトリが実行するスクリプトと同じ UID を有しているかどうかを確認します。 |
dl() | この関数は、PHP が safe-mode で動作している場合は無効となります。 |
backtick operator | この関数は、PHP が safe-mode で動作している場合は無効となります。 |
shell_exec() (functional equivalent of backticks) | この関数は、PHP が safe-mode で動作している場合は無効となります。 |
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
を有しているかどうかを確認します。 (
source および
target において) |
chgrp() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 |
chown() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 |
chmod() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 加えて、SUID, SGID, スティキービットを設定する ことはできません |
touch() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 処理を行うディレクトリが実行するスクリプトと同じ UID を有しているかどうかを確認します。 |
symlink() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 処理を行うディレクトリが実行するスクリプトと同じ UID を有しているかどうかを確認します。 (注意: ターゲットのみが 確認されます) |
link() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 処理を行うディレクトリが実行するスクリプトと同じ UID を有しているかどうかを確認します。 (注意: ターゲットのみが 確認されます) |
apache_request_headers() |
セーフモードでは、authorization で始まるヘッダ(大文字小文字は
区別されません)は返されません。
|
header() |
セーフモードでは、WWW-Authenticate
(HTTP認証)ヘッダをセットする場合に
realm パートに
スクリプトのUIDがセットされます。
|
PHP_AUTH variables | セーフモードでは、PHP_AUTH_USER, PHP_AUTH_PW, AUTH_TYPEは $_SERVERに含まれません。 にも関わらず、USERにREMOTE_USERを使うことは未だ可能です。 (PHP4.3.0以降でのみ影響) |
highlight_file(), show_source() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 処理を行うディレクトリが実行するスクリプトと同じ UID を有しているかどうかを確認します。 |
parse_ini_file() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 処理を行うディレクトリが実行するスクリプトと同じ UID を有しているかどうかを確認します。 |
set_time_limit() | PHPがセーフモードで実行されている場合は影響を受けません。 |
max_execution_time | PHPがセーフモードで実行されている場合は影響を受けません。 |
mail() | セーフモードでは、5番目のパラメータが無効となります。 |
session_start() |
デフォルトの files session.save_handler
を使う場合は、スクリプトのオーナーが session.save_path
ディレクトリのオーナーと同じでなければなりません。
|
すべてのファイルシステム関数およびストリーム関数 | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 処理を行うディレクトリが実行するスクリプトと同じ UID を有しているかどうかを確認します。 (php.ini オプション safe_mode_include_dir を参照ください)。 |
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...