PHP には多くの機能がありますが、その中には非常に危険な機能があるため、それらを禁止する必要があります。
では、どの機能が危険なのでしょうか?
phpinfo()
機能説明: PHPの環境情報や関連モジュール、WEB環境などの情報を出力します。
危険レベル: 中
パススルー()
関数の説明: exec() と同様に、外部プログラムを実行し、出力をエコーすることができます。
危険レベル: 高
exec()
機能の説明: 外部プログラム (UNIX シェルや CMD コマンドなど) の実行を許可します。
危険レベル: 高
システム()
関数の説明: passthru() と同様に、外部プログラムを実行して出力をエコーすることができます。
危険レベル: 高
chroot()
機能の説明: システムが CLI モードをサポートしている場合にのみ、現在の PHP プロセスの作業ルート ディレクトリを変更できます
PHP でのみ動作し、この機能は Windows システムでは使用できません。
危険レベル: 高
スキャンディル()
機能の説明: 指定されたパスにあるファイルとディレクトリを一覧表示します。
危険レベル: 中
chgrp()
機能説明: ファイルまたはディレクトリが属するユーザーグループを変更します。
危険レベル: 高
chown()
機能の説明: ファイルまたはディレクトリの所有者を変更します。
危険レベル: 高
shell_exec()
機能の説明: シェルを通じてコマンドを実行し、実行結果を文字列として返します。
危険レベル: 高
proc_open()
機能の説明: コマンドを実行し、読み取りと書き込みのためにファイル ポインターを開きます。
危険レベル: 高
proc_get_status()
関数の説明: proc_open() を使用してオープンされたプロセスに関する情報を取得します。
危険レベル: 高
error_log()
機能説明: エラー情報を指定された場所(ファイル)に送信します。
安全上の注意: PHP の一部のバージョンでは、error_log() を使用して PHP セーフ モードをバイパスできます。
任意のコマンドを実行します。
危険レベル: 低
ini_alter()
関数説明: ini_set()関数のエイリアス関数であり、ini_set()と同じ機能を持ちます。
詳細については、ini_set() を参照してください。
危険レベル: 高
ini_set()
機能の説明: PHP 環境構成パラメーターの変更および設定に使用できます。
危険レベル: 高
ini_restore()
機能の説明: PHP 環境設定パラメーターを初期値に戻すために使用できます。
危険レベル: 高
dl()
機能の説明: PHP の実行中に (起動時ではなく) PHP 外部モジュールをロードします。
危険レベル: 高
pfsockopen()
機能の説明: インターネットまたは UNIX ドメインでソケット永続接続を確立します。
危険レベル: 高
syslog()
機能説明: UNIXシステムのシステム層syslog()関数を呼び出すことができます。
危険レベル: 中
readlink()
関数の説明: シンボリックリンクが指すターゲットファイルの内容を返します。
危険レベル: 中
シンボリックリンク()
機能説明: UNIXシステムでシンボリックリンクを作成します。
危険レベル: 高
popen()
関数の説明: コマンドは、popen() のパラメータを介して渡され、popen() によって開かれたファイル上で実行できます。
危険レベル: 高
stream_socket_server()
機能の説明: インターネットまたは UNIX サーバー接続を確立します。
危険レベル: 中
putenv()
機能の説明: PHP 実行時にシステムの文字セット環境を変更するために使用されます。 PHP バージョン 5.2.6 より前のバージョンでは、この関数を使用できます
システムの文字セット環境を変更した後、sendmail コマンドを使用して特別なパラメータを送信し、システム SHELL コマンドを実行します。
危険レベル: 高
vim /usr/local/php/etc/php.ini 内
disable_function=phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server ,fsocket,fsockopen