説明
パスワード、トークン、セッション識別子、APIキーなどの機密情報を print、NSLog、os_log、Logger に出力すると、端末のログ、クラッシュ情報の収集基盤、運用ログへのアクセスを通じて値が漏えいするおそれがあります。
想定される影響
- 認証トークンやセッションの窃取。
- 個人情報や内部APIキーの漏えい。
- ログ収集システムを通じた機密情報の拡散。
対処方法
- 機密情報をログに出力しないでください。
- 必要な場合は、固定のマスク文字列や別の追跡IDだけを記録してください。
- 共通のマスキング用ヘルパーやログフィルターを設け、機密フィールドを一元的に除去してください。
例
変更前
swift
func logToken(token: String) {
NSLog("token %@", token)
}
変更後
swift
func logToken() {
NSLog("token refreshed")
}
解説:
- 変更前: トークンの値を直接ログに残すと、ログを読めるだけで認証情報を取得できてしまいます。
- 変更後: イベントだけを記録し、機密情報そのものは出力しません。