Swift 민감 정보 평문 로그 기록

민감 정보의 평문 로그 기록

설명

비밀번호, 토큰, 세션 식별자, API 키 같은 민감 정보를 print, NSLog, os_log, Logger 등에 남기면 디바이스 로그, 크래시 수집기, 운영 로그 접근 권한을 통해 값이 노출될 수 있습니다.

잠재적 영향

  • 인증 토큰 또는 세션 탈취
  • 개인정보와 내부 API 키 노출
  • 로그 수집 시스템을 통한 민감 정보 확산

해결 방법

  1. 민감 값은 로그에 남기지 않습니다.
  2. 필요한 경우 고정된 마스킹 문자열이나 별도 추적 ID만 기록합니다.
  3. 공통 redaction helper나 logging filter를 두고 민감 필드를 중앙에서 제거합니다.

예시

변경 전

swift
func logToken(token: String) {
    NSLog("token %@", token)
}

변경 후

swift
func logToken() {
    NSLog("token refreshed")
}

설명:

  • 변경 전: 토큰 값을 로그에 직접 남기면 로그 접근 권한만으로 인증 값이 노출됩니다.
  • 변경 후: 이벤트만 기록하고 민감 값 자체는 출력하지 않습니다.

참조