471 단어
2 분
현대 안드로이드 인앱 웹뷰와 보안 경계 분석
서론
최근 모바일 환경에서는 단순 네이티브 앱을 넘어 인앱 브라우저와 웹뷰(WebView)를 통합한 하이브리드 아키텍처가 널리 쓰이고 있습니다. 그러나 웹 표준(WHATWG)의 발전 속도와 각 OS 플랫폼의 웹뷰 구현체 사이에는 미묘한 간극이 존재합니다.
본 글에서는 안드로이드 환경의 웹뷰 스토리지 파티셔닝(Storage Partitioning) 및 프레이밍(Framing) 방어 메커니즘을 중심으로 클라이언트 사이드 보안의 핵심 쟁점을 정리합니다.
1. Storage Partitioning의 플랫폼별 동작 차이
최신 데스크톱 브라우저는 서드파티 컨텍스트에서 쿠키와 로컬 스토리지를 탑 레벨 오리진(Top-level Origin)별로 완벽히 격리하는 CHIPS(Cookies Having Independent Partitioned State) 및 파티셔닝 정책을 기본 적용하고 있습니다.
그러나 모바일 인앱 브라우저 및 커스텀 WebView 환경의 경우:
- 앱 내부 웹뷰 컨테이너의 쿠키 매니저 구현 방식에 따라 세션 쿠키의 공유 범위가 달라질 수 있습니다.
- 특정 앱 내 웹뷰에서는 여전히 레거시 스토리지 공유 구조가 유지되어 세션 지속성에 영향을 미칩니다.
2. UI Redressing 및 Clickjacking 방어
전통적인 X-Frame-Options 대신 현대적인 Content-Security-Policy: frame-ancestors 지시어를 채택하는 것이 표준 권장사항입니다.
Content-Security-Policy: frame-ancestors 'self' https://trusted.service.com;
단순히 상위 프레임 렌더링을 차단하는 것을 넘어, 민감한 1-click 상태 변경 액션(프로필 저장, 권한 위임 등)이 발생하는 엔드포인트에는 재인증 또는 명시적인 CSRF 토큰 검증 레이어를 이중으로 배치하는 것이 안전합니다.
현대 안드로이드 인앱 웹뷰와 보안 경계 분석
https://fuwari.vercel.app/posts/android-webview-security/