피드로 돌아가기
Dev.toSecurity
원문 읽기
API Over-fetching 방지를 통한 Public 문서 내 PII 유출 차단 설계
How to Prevent Email Leaks When Sharing Collaborative Docs Publicly
AI 요약
Context
협업 툴의 Public 페이지 공유 시 UI에서는 가려진 사용자 이메일과 조직 정보가 API Response에 그대로 포함되는 Over-fetching 문제 발생. 인증된 사용자와 비인증 사용자의 Response Shape를 동일하게 처리하는 단일 Serializer 구조로 인해 PII(Personally Identifiable Information) 유출 위험 상존.
Technical Solution
- 접근 권한에 따른 Public/Authenticated 전용 Separate Serializers 도입을 통한 데이터 노출 범위 격리
- 비인증 사용자 요청 시 minimal한 필드(display_name, avatar_hash)만 반환하는 PublicUserSerializer 강제 적용
- Response Middleware 계층에 정규 표현식 기반의 PII Leak Detection 로직을 구현하여 런타임 단계의 최종 방어선 구축
- 'Visibility Toggle' 개념을 'External API Surface' 관점으로 전환하여 Public 엔드포인트의 데이터 모델 재정의
- 내부 User ID 및 Workspace ID 등 식별 가능한 메타데이터의 전면 제거를 통한 정보 노출 최소화
실천 포인트
1. API 설계 시 기본값을 최소 데이터로 설정하고 필요한 필드를 명시적으로 추가하는 Opt-in 방식 적용
2. 인증 상태에 따라 Serialization Layer를 완전히 분리하여 Response Shape를 다르게 정의
3. Public 엔드포인트 대상 비인증 상태의 API 응답을 PII 스캐너로 검증하는 자동화 테스트 구축
4. Network Tab을 통한 Raw JSON 분석으로 UI에 표시되지 않는 숨겨진 메타데이터 유출 여부 전수 조사