ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルの危険な関数の完全な分析
PHP をコンパイルするとき、特別な必要がない限り、CLI コマンドライン モードで PHP 解析サポートをコンパイルおよび生成することを禁止する必要があります。 --disable-CLI を使用してコンパイルできます。 CLI モードの PHP がコンパイルおよび生成されると、そのプログラムは侵入者によって使用され、WEB シェルのバックドア プロセスを確立したり、PHP を通じて任意のコードを実行したりする可能性があります。
phpinfo()
機能説明: PHP環境情報および関連モジュール、WEB環境等の情報を出力します。
危険レベル: 中
passthru()
機能の説明: exec() と同様に、外部プログラムを実行し、出力をエコーすることができます。
危険レベル:高
exec()
機能の説明:外部プログラム(UNIXシェルやCMDコマンドなど)の実行を許可します。
危険レベル: 高
system()
機能の説明: passthru() と同様に、外部プログラムの実行と出力のエコーを許可します。
危険レベル: 高
chroot()
機能の説明: 現在の PHP プロセスの作業ルート ディレクトリを変更できます。システムが CLI モード PHP をサポートしている場合にのみ機能し、この機能はサポートされていません。 Windows システムに適用されます。
危険レベル: 高
scandir()
関数の説明: 指定されたパスにあるファイルとディレクトリを一覧表示します。
危険レベル:中
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()
関数の説明: シンボリックリンクが指すターゲットファイルの内容を返します。
危険レベル: 中
symlink()
機能の説明: UNIX システムにシンボリックリンクを作成します。
危険レベル: 高
popen()
機能の説明: Popen() のパラメータを介してコマンドを渡し、popen() によって開かれたファイル上で実行できます。
危険レベル: 高
stream_socket_server()
機能の説明: インターネットまたは UNIX サーバー接続を確立します。
危険レベル: 中
putenv()
機能の説明: PHP の実行時にシステムの文字セット環境を変更するために使用されます。 5.2.6 より前の PHP バージョンでは、この関数を使用してシステムの文字セット環境を変更し、sendmail コマンドを使用して特別なパラメータを送信し、システム SHELL コマンドを実行できます。
危険レベル: 高