現在の PHP 設定に潜在的なセキュリティ上の欠陥がないか確認します。
このファイルに Web サーバーからアクセスするか、CLI で実行するだけです。
このソフトウェアは Ben Fuhrmannek と SektionEins GmbH によって、php.ini のチェックを自動化し、楽しい作業により多くの時間を費やす目的で作成されました。
CLI: php phpconfigcheck.php を呼び出すだけです。-a を追加すると非表示の結果も表示され、-h で HTML 出力、-j で JSON 出力になります。
WEB: このスクリプトを Web サーバーからアクセス可能なディレクトリ(ドキュメントルートなど)にコピーします。以下の「保護措置」も参照してください。
CLI 以外のモードでの出力はデフォルトで HTML です。この動作は環境変数 PCC_OUTPUT_TYPE=text または PCC_OUTPUT_TYPE=json を設定することで変更できます。
一部のテストケースはデフォルトで非表示になります(具体的には、スキップ、OK、不明/未テスト)。すべての結果を表示するには、phpconfigcheck.php?showall=1 を使用します。これは JSON 出力には適用されません。JSON 出力ではデフォルトですべての結果が返されます。
WEB モードで出力形式を制御するには、phpconfigcheck.php?format=... を使用します。format の値は text、html、json のいずれかです。例:phpconfigcheck.php?format=text。format パラメータは PCC_OUTPUT_TYPE より優先されます。
PHP 設定などのセキュリティ関連情報を自分自身にとどめておくことは、たいてい良い考えです。以下の保護措置が実装されています。
mtime チェック: このスクリプトは CLI 以外のモードでは 2 日後に動作を停止します。チェックを再び有効にするには、touch phpconfigcheck.php を実行するか、スクリプトをサーバーに再コピーします(例:SCP を使用)。このチェックは環境変数 PCC_DISABLE_MTIME=1 を設定することで無効にできます(例:Apache の .htaccess で SetEnv PCC_DISABLE_MTIME 1)。
ソース IP チェック: デフォルトでは localhost(127.0.0.1 と ::1)のみがこのスクリプトにアクセスできます。他のホストを追加するには、PCC_ALLOW_IP に IP アドレスまたはワイルドカードパターンを設定します(例:.htaccess で SetEnv PCC_ALLOW_IP 10.0.0.*)。SSH ポート転送(例:ssh -D または ssh -L)を使用して Web サーバーにアクセスすることもできます。
無効な関数: このスクリプトは正常に動作するために ini_get() や stat() などの関数を必要とします。これらの関数のいずれかがブラックリストに登録されている(またはホワイトリストに登録されていない)場合、実行が失敗するか、無効な出力が生成されます。このような場合、Suhosin を一時的にシミュレーションモードにし、disable_functions を省略することが可能です。安全を期すために、別のディレクトリの .htaccess で緩和されたセキュリティ設定を行うことができます。また、このスクリプトはコマンドラインから Web サーバーの設定で呼び出すこともできます(例:php -n -c /etc/.../php.ini phpconfigcheck.php)。
CLI: 古い PHP バージョンでは SAPI 名 'cli' が認識されず、CLI でも CGI スタイルの出力が行われます。回避策:PCC_OUTPUT_TYPE=text /opt/php/php-5.1.6/bin/php phpconfigcheck.php
このツールは、安全な PHP 環境のセットアップを支援するだけです。それ以上のものではありません。このツールの出力が問題ないことを示唆していても、あなたのセットアップ、ソフトウェア、または関連する設定が脆弱である可能性があります。