피드로 돌아가기
Dev.toSecurity
원문 읽기
Opaque Origin 기반의 Sandboxed iframe을 활용한 정적 XSS 실습 환경 구축
--- title: I built a static XSS playground that runs payloads safely in the browser ---
AI 요약
Context
이론 중심의 학습 자료와 취약한 Backend가 필요한 기존 XSS 실습 환경의 한계 존재. 안전한 실행 환경과 실습 편의성을 동시에 충족하는 Static Frontend 기반의 격리 구조 필요.
Technical Solution
- sandbox="allow-scripts" 속성을 적용한 iframe 도입으로 Payload 실행 권한 부여
- allow-same-origin 속성을 의도적으로 제외하여 Unique Opaque Origin을 생성함으로써 Parent Page의 Storage 및 DOM 접근 차단
- window.alert를 parent.postMessage로 오버라이딩하여 샌드박스 내부 이벤트를 안전하게 외부로 전달하는 구조 설계
- window.open 및 window.fetch API를 무효화하여 외부 네트워크 통신 및 팝업을 통한 공격 벡터 원천 차단
- Inline Script 허용 지양 및 올바른 Output Encoding 적용을 통한 CSP(Content Security Policy) 강화 전략 채택
실천 포인트
- 외부 콘텐츠 실행 시 sandbox 속성에서 allow-same-origin 제거 여부 검토 - 위험 API(fetch, open 등)의 Mocking을 통한 런타임 제어 가능성 확인 - CSP 설정 시 Inline Script 허용이 정책의 실효성을 저해하는지 점검 - Output Encoding과 Safe DOM API 사용을 최우선 방어 전략으로 설정