피드로 돌아가기
Making "files never leave your browser" verifiable with DevTools and CSP
Dev.toDev.to
Security

CSP connect-src 설정을 통한 브라우저 수준의 데이터 유출 원천 차단 설계

Making "files never leave your browser" verifiable with DevTools and CSP

szp20052026년 6월 15일4intermediate

Context

클라이언트 사이드 도구들이 주장하는 'Zero Upload' 정책의 신뢰성 검증 부재 및 단순한 프라이버시 정책의 한계점 발생. 사용자 신뢰를 담보하기 위해 단순한 주장이 아닌 브라우저 런타임 수준에서 데이터 외부 전송을 강제 차단하는 검증 가능한 아키텍처 필요.

Technical Solution

  • CSP connect-src 'self' 설정을 통한 브라우저 엔진 레벨의 Egress Allowlist 구현
  • no-cors 요청 또한 connect-src 제약 조건에 귀속됨을 이용한 데이터 은닉 전송 경로 차단
  • WASM 인스턴스화를 위해 'unsafe-eval' 대신 범위가 좁은 'wasm-unsafe-eval' 지시어를 채택하여 공격 표면 최소화
  • 외부 폰트 및 분석 스크립트의 Third-party 요청을 제거하고 모든 에셋을 Self-hosting 하여 Network 패널 상의 불필요한 트래픽 제거
  • Service Worker의 인터셉트 방식이 아닌 브라우저 강제 정책인 CSP를 최상위 보안 경계로 설정하여 코드 우회 가능성 제거

- Zero Upload 구현 시 CSP connect-src 'self' 설정으로 런타임 수준의 데이터 유출 방지책 마련 - WASM 사용 시 'wasm-unsafe-eval'을 사용하여 최소 권한 원칙 준수 - Network 패널의 Size 컬럼 합계와 원본 파일 크기를 비교하는 Sanity Check 프로세스 도입 - 외부 라이브러리 및 폰트의 Self-hosting을 통해 외부 도메인 연결 지점 최소화

원문 읽기