エラー情報の漏えい

エラー情報の漏えい

説明

本番環境で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());

解説:

  • 変更前: デバッグ情報やエラーの詳細がユーザーに公開されています。
  • 変更後: エラー表示を無効にし、詳細をサーバーログへ記録します。

ログへのアクセスを制限し、認証情報などの秘密情報は除外またはマスキングしてください。

参考資料