safe-modeにより制限される 関数のリストを示します。ただし、まだ、不完全で、不正確である可能性 があります。
表 42-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_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() | この関数は、safe-mode では無効となります。 | 
| backtick operator | この関数は、safe-mode では無効となります。 | 
| shell_exec() (functional equivalent of backticks) | この関数は、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 を有しているかどうかを確認します。 (注: PHP 4.2.1以降でのみ影響する) | 
| parse_ini_file() | 処理を行うファイル/ディレクトリが実行するスクリプトと 同じUIDを有しているかどうかを確認します。 処理を行うディレクトリが実行するスクリプトと同じ UID を有しているかどうかを確認します。 (注: PHP 4.2.1以降でのみ影響する) | 
| set_time_limit() | PHPがセーフモードで実行されている場合は影響を受けません。 | 
| max_execution_time | PHPがセーフモードで実行されている場合は影響を受けません。 | 
| mail() | セーフモードでは、5番目のパラメータが無効となります。(注意: PHP 4.2.3以降のみ適用) | 
| php4/main/fopen_wrappers.cを使用する全ての関数 | ?? |