例外情報の漏えい

C#の例外情報の漏えい

説明

例外メッセージ、スタックトレース、内部例外の詳細をクライアントへの応答に含めると、内部実装や環境の情報が漏れるおそれがあります。

想定される影響

  • 内部パス、型、フレームワークの動作、入力検証に失敗した箇所が明らかになり、後続の攻撃に利用される可能性があります。

対処方法

クライアントには一般的なエラーメッセージを返し、例外の詳細はサーバーログだけに記録してください。

例

変更前

csharp
return BadRequest(new { error = ex.Message });

変更後

csharp
logger.LogError(ex, "Request failed");
return BadRequest(new { error = "Request failed" });

解説:

  • 変更前: 例外メッセージやスタックトレースをクライアントに返すと、内部パス、型、実装の詳細が漏れるおそれがあります。
  • 変更後: クライアントには一般的なエラーを返し、例外の詳細はサーバー側のログに記録します。

参考資料