PHPの開発と運用およびメンテナンスプロセスでは、PHP環境の安全な構成が非常に重要な部分であることを確認します。 Phpinfo()関数は、PHPに付属する強力なツールです。バージョン、コンピレーションオプション、拡張モジュール、環境変数、PHP変数、HTTPヘッダー情報など、現在のPHP環境のすべての構成情報を詳細に表示できます。 phpinfo()からのコンテンツ出力を表示することにより、PHPのセキュリティ設定が合理的かつ完全であるかどうかを迅速に確認できます。
サーバーまたはローカル環境で、次のコンテンツを使用して、info.phpなどの新しいPHPファイルを作成します。
<?php
phpinfo();
?>
次に、ブラウザにアクセスします。
http://gitbox.net/info.php
PHPランタイムに関するすべての情報をリストする詳細な構成ページが表示されます。
このオプションは、エラーメッセージがページに直接表示されるかどうかを制御します。サーバーパスとコード情報の漏れを防ぐために、生産環境をシャットダウンする必要があります。
display_errors => Off
有効にすると、PHPバージョンの情報がHTTPヘッダーに公開され、攻撃者が簡単に搾取できます。閉じる必要があります。
expose_php => Off
履歴レガシー構成は、電源を入れた後、Get/Post/Cookie変数をグローバル変数として自動的に登録します。これにより、セキュリティの問題を簡単に引き起こし、オフにする必要があります。
register_globals => Off
これらの2つの構成には、URLを介してファイルへのアクセスを許可し、リモートファイルを含めるかどうかが含まれます。通常、生産環境は、リモートコードの実行攻撃を防ぐためにシャットダウンされます。
allow_url_fopen => Off
allow_url_include => Off
PHPスクリプトを制限して、指定されたディレクトリのみにアクセスして、ファイルシステムの違法アクセスを防ぎます。
open_basedir => /var/www/html/
有効になった場合、クライアントスクリプトはJavaScriptを介してCookieにアクセスできず、保護を強化します。
session.cookie_httponly => On
phpinfo()を介したコンテンツ出力は次のとおりです。
PHPバージョンが既知の脆弱性を防ぐための最新の安定したバージョンであるかどうかを確認してください。
安全でない拡張機能またはモジュールがロードされているかどうかを確認します。
環境変数で機密情報が公開されているかどうかを確認してください。
サーバー構成と組み合わせて、PHPのファイルアクセス制限を確認します。
PHPINFO()は、PHP環境情報とセキュリティ監査の最初のステップを迅速にチェックするための強力なツールです。 Phpinfo()自体にはセキュリティ機能はありませんが、それを通じて取得した情報は、構成のセキュリティリスクをタイムリーに発見し、ハッカーに搾取されることを避けるのに役立ちます。パブリックネットワーク環境にphpinfo()を含むページを配置したり、厳しいアクセス制御を確保したりしないでください。