피드로 돌아가기
Dev.toSecurity
원문 읽기
Cookieless Origin 및 Signed URL 기반의 사용자 HTML 격리 설계
Safely hosting arbitrary user HTML: the cookieless-origin sandbox pattern
AI 요약
Context
LLM 생성 HTML 등 임의의 사용자 코드를 렌더링할 때 발생하는 XSS 및 세션 탈취 위험 분석. 단순 iframe sandbox와 allow-same-origin 속성 동시 사용 시 Origin 격리가 무력화되는 구조적 한계 직면.
Technical Solution
- App Origin과 분리된 별도의 Cookieless Content Origin(view. domain) 구축을 통한 Same-origin Policy 강제 적용
- Auth Middleware 매처에서 Content Route를 제외하여 구조적으로 세션 쿠키 접근을 원천 차단한 설계
- allow-same-origin을 제거한 sandbox 속성 적용으로 iframe 내 스크립트의 Host Origin 접근 권한 제거
- 60초 만료 시간의 short-lived Signed JWT URL을 통한 일시적 접근 권한 부여 및 데이터 유출 리스크 최소화
- frame-ancestors 설정을 통한 App Origin 외의 외부 임베딩 차단 및 no-referrer 정책 적용
- DB 쿼리 레이어의 Workspace-scoped 접근 제어로 테넌트 간 데이터 격리 보장
실천 포인트
- 신뢰할 수 없는 HTML 렌더링 시 반드시 별도의 서브도메인(Origin) 분리 검토 - sandbox 속성 사용 시 allow-scripts와 allow-same-origin의 동시 사용 금지 - 상태 저장 세션 대신 짧은 유효기간의 Signed URL을 통한 리소스 접근 제어 구현 - CSP의 과도한 제한보다는 Origin 격리와 sandbox 속성을 통한 1차 방어선 구축