説明
本番環境でPHPのエラー、スタック情報、データベースのエラーメッセージをユーザーに見せると、内部構造や機密情報が漏れるおそれがあります。
想定される影響
パス、クエリー、アカウント名、実装の詳細が、次の攻撃に利用される可能性があります。
対処方法
本番環境では display_errors を無効にし、詳細なエラーはサーバー側のログだけに記録します。
例
変更前
php
<?php
ini_set('display_errors', '1');
echo mysqli_error($db);
変更後
php
<?php
ini_set('display_errors', '0');
error_log($e->getMessage());
解説:
- 変更前: デバッグ情報やエラーの詳細がユーザーに公開されています。
- 変更後: エラー表示を無効にし、詳細をサーバーログへ記録します。
ログへのアクセスを制限し、認証情報などの秘密情報は除外またはマスキングしてください。