機密情報のログ記録

C#での機密情報のログ記録

説明

パスワード、トークン、APIキー、セッション識別子をログに記録すると、ログ収集処理や運用ダッシュボードを通じてシークレットが漏れる可能性があります。

想定される影響

  • アカウントの乗っ取り、セッションハイジャック、外部サービスのキーの漏えい。

対処方法

機密の値をログに記録しないでください。記録が必要な場合は、固定のマスキング文字列か、機密性のない追跡用識別子を使ってください。

例

変更前

csharp
logger.LogInformation("Password {Password}", account.Password);

変更後

csharp
logger.LogInformation("Password [redacted]");

変更前は、ログ保存先や監視システムを通じてパスワードが露出します。変更後は、シークレットの値を含めずに固定の文字列だけを記録します。

参考資料