説明
例外メッセージ、スタックトレース、内部例外の詳細をクライアントへの応答に含めると、内部実装や環境の情報が漏れるおそれがあります。
想定される影響
- 内部パス、型、フレームワークの動作、入力検証に失敗した箇所が明らかになり、後続の攻撃に利用される可能性があります。
対処方法
クライアントには一般的なエラーメッセージを返し、例外の詳細はサーバーログだけに記録してください。
例
変更前
csharp
return BadRequest(new { error = ex.Message });
変更後
csharp
logger.LogError(ex, "Request failed");
return BadRequest(new { error = "Request failed" });
解説:
- 変更前: 例外メッセージやスタックトレースをクライアントに返すと、内部パス、型、実装の詳細が漏れるおそれがあります。
- 変更後: クライアントには一般的なエラーを返し、例外の詳細はサーバー側のログに記録します。