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

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 を参照ください)。

add a note add a note

User Contributed Notes 2 notes

up
5
Jan
19 years ago
It seems that glob and file_exists functions are also restricted in safe-mode.
up
3
tschmieder at bitworks dot de
17 years ago
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...
To Top