피드로 돌아가기
I almost leaked a customer's data while screen-sharing ChatGPT — here's what I built to stop it
Dev.toDev.to
Security

MutationObserver 기반 실시간 민감 정보 Blur 레이어 구현

I almost leaked a customer's data while screen-sharing ChatGPT — here's what I built to stop it

Mikhail Borodin2026년 6월 4일4intermediate

Context

ChatGPT와 같은 스트리밍 UI 환경에서 스크린 공유 시 민감 데이터가 노출되는 보안 취약점 발생. 기존의 수동 체크리스트나 별도 계정 사용 방식은 사용자 인지 부하로 인한 실효성 저하라는 한계 존재.

Technical Solution

  • Rendering 시점 이전 단계에서 작동하는 CSS Blur 레이어 적용을 통한 데이터 노출 원천 차단
  • 정규표현식 기반 Heuristic Matcher를 활용하여 이메일, API Key, 토큰 등 패턴 분석 및 식별
  • MutationObserver 도입을 통해 동적으로 추가되는 스트리밍 메시지 노드에 대한 실시간 스캔 수행
  • 전체 DOM 재스캔 대신 추가된 노드만 처리하고 Callback을 Debouncing 하여 런타임 성능 최적화
  • User-defined Rules 기능을 추가하여 도메인별 특수 패턴에 대응하는 유연한 확장 구조 설계
  • Local-only 처리 원칙을 준수하여 외부 서버 전송 없는 Client-side 전용 개인정보 보호 아키텍처 구현

- 동적 컨텐츠 업데이트가 빈번한 UI에서는 단순 Load 이벤트가 아닌 MutationObserver 활용 검토 - 대규모 DOM 변경 감지 시 성능 저하 방지를 위해 Debouncing 및 증분 스캔(Incremental Scan) 적용 - 보안 가드레일 설계 시 사용자의 주의력에 의존하지 않는 'Zero Discipline' 자동화 구조 지향

원문 읽기