data: URL wrapper
iframe, object, embed, link preview 같은 wrapper URL 속성에서 data:text/html 이 허용되어 별도 HTML 문서가 실행되는지 확인한다.
HTML payload 테스트
이 시나리오는 iframe sandbox 가 아니라 사용자 입력이 HTML/DOM 으로 렌더링되는 지점을 검증합니다.
- src/data/href 같은 URL 속성에서 data: 스킴을 기본 차단하는지 확인
- 허용이 필요하다면 MIME type 을 이미지 등으로 좁히는지 확인
- wrapper 태그가 sandbox 없이 HTML 문서를 만들 수 있는지 확인
페이로드
복사할 payload
data: URL 로 생성된 하위 문서가 script 를 실행하고 부모와 통신할 수 있는지 확인한다.
붙여넣을 곳
본인이 권한을 가진 dev/staging의 에디터, 댓글, 프로필 또는 HTML 렌더링 입력란
판정 기준
실행되면 위험 신호입니다. 코드가 텍스트로 표시되거나 위험 요소가 제거되어야 기대한 방어 결과입니다.
미리보기
미리보기는 학습용으로 의도적으로 unsafe 렌더링을 수행합니다. 실제 서비스에서는 이 payload 가 텍스트로 이스케이프되거나 제거되어야 합니다.
로그
// 로그 없음
해설
data:text/html은 URL처럼 보이지만 브라우저에는 새 HTML 문서를 만들 수 있는 wrapper 입니다.- DOMPurify 같은 sanitizer 에서 태그는 허용하면서 URL 스킴을 넓게 열어두면 iframe/object/embed 조합이 위험해질 수 있습니다.
- embed 기능은 태그 allowlist 와 별개로 URL protocol, host allowlist, sandbox, referrer 정책을 같이 설계해야 합니다.