機密情報を含むデータベースエラーメッセージの生成

説明

このアプリケーションはデータベースのエラーメッセージを返すことが判明しました。データベースの種類を特定することは、攻撃者がシステムに対する SQL インジェクション攻撃を悪用するのに役立つかもしれません。デバッグメッセージは開発中やデバッグ中には役に立ちますが、エラー発生時にユーザに表示すべきではありません。

対処法

アプリケーションは内部でデータベースのエラー状態を処理し、既知のエラータイプをユーザーに表示できるエラーコードにマップする必要があります。これらのエラーコードはアプリケーションに合わせてカスタマイズされ、関連する HTTP エラーコードと共に返されるべきです。

エラーが発生すると、アプリケーションはエラーの種類やクラスを特定し、ユーザーに数値を表示します。ユーザーがエラーコードを表示されたときに、対応するリクエスト ID を持つように、リクエストも追跡されるべきです。サポートチームは、HTTPエラー、カスタマイズされたエラーコード、ログファイル内のリクエストIDを関連付けることで、エンドユーザーに詳細を漏らすことなく、エラーの根本原因を特定することができます。

カスタマイズされたエラーを返す例:

HTTP/1.1 500 Internal Server Error
...
Error [0004] Occurred, please contact support or re-try your request again shortly.
Request ID [a4bc91def12]
...

詳細

ID集計CWE種類リスク
209.2false209受動的