설명
비밀번호, 토큰, 세션 식별자, API 키 같은 민감 정보를 print, NSLog, os_log, Logger 등에 남기면 디바이스 로그, 크래시 수집기, 운영 로그 접근 권한을 통해 값이 노출될 수 있습니다.
잠재적 영향
- 인증 토큰 또는 세션 탈취
- 개인정보와 내부 API 키 노출
- 로그 수집 시스템을 통한 민감 정보 확산
해결 방법
- 민감 값은 로그에 남기지 않습니다.
- 필요한 경우 고정된 마스킹 문자열이나 별도 추적 ID만 기록합니다.
- 공통 redaction helper나 logging filter를 두고 민감 필드를 중앙에서 제거합니다.
예시
변경 전
swift
func logToken(token: String) {
NSLog("token %@", token)
}
변경 후
swift
func logToken() {
NSLog("token refreshed")
}
설명:
- 변경 전: 토큰 값을 로그에 직접 남기면 로그 접근 권한만으로 인증 값이 노출됩니다.
- 변경 후: 이벤트만 기록하고 민감 값 자체는 출력하지 않습니다.