セーフモードにより制限を受けるか無効となる関数

safe-modeにより制限される 関数のリストを示します。ただし、まだ、不完全で、不正確である可能性 があります。

表 22-2. セーフモードで制限される関数

関数制限
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_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()この関数は、safe-modeでは無効となります。
backtick operatorこの関数は、safe-modeでは無効となります。
shell_exec() (functional equivalent of backticks)この関数は、safe-modeでは無効となります。
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を 有しているかどうかを確認します。 ( sourceおよび targetにおいて)
chgrp()処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。
chown()処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。
chmod() 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 加えて、SUID, SGID, スティキービットを設定する ことはできません
touch()処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 処理を行うディレクトリが実行するスクリプトと同じUIDを 有しているかどうかを確認します。
symlink()処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 処理を行うディレクトリが実行するスクリプトと同じUIDを 有しているかどうかを確認します。 (注意: ターゲットのみが 確認されます)
link()処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 処理を行うディレクトリが実行するスクリプトと同じUIDを 有しているかどうかを確認します。 (注意: ターゲットのみが 確認されます)
getallheaders() セーフモードでは、'authorization'で始まるヘッダ(大文字小文字は 区別されません)は返されません。 警告: これは、AOLサーバにおける getallheaders()の実装では正常に動作しません!
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を 有しているかどうかを確認します。 (注: PHP 4.2.1以降でのみ影響する)
parse_ini_file() 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 処理を行うディレクトリが実行するスクリプトと同じUIDを 有しているかどうかを確認します。 (注: PHP 4.2.1以降でのみ影響する)
set_time_limit() PHPがセーフモードで実行されている場合は影響を受けません。
max_execution_time PHPがセーフモードで実行されている場合は影響を受けません。
Any function that uses php4/main/fopen_wrappers.c ??