top.location 강제 리다이렉트
iframe 안에서 부모 창 전체를 다른 URL 로 보내며 sandbox allow-top-navigation 차이를 확인한다.
sandbox 정책별 동작
| 정책 | 예상 결과 |
|---|---|
| sandbox 미부착 | 동작함 |
sandbox="allow-scripts" | 차단됨 |
sandbox="" (가장 엄격) | 차단됨 |
임베드 스니펫
이 코드는 임베드 전용 페이지를 사용합니다. 본인 서비스에 그대로 붙여 넣고 렌더링/차단 여부를 확인하세요.
<iframe src="https://xss-playground.com/embed/top-redirect?lang=ko" title="XSS Playground - top.location 강제 리다이렉트" width="600" height="420" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
실행
// 로그 없음
해설
- same-origin frame 은
window.top.location으로 최상위 페이지를 바꿀 수 있고, cross-origin frame 은 최신 브라우저에서 사용자 상호작용이 있을 때만 허용되는 편입니다. SOP 가 읽기는 막지만 이 navigation surface 를 완전히 대신 막아주지는 않습니다. - 차단하려면 sandbox 에
allow-top-navigation을 주지 않으면 됩니다.sandbox="allow-scripts"만 줘도 차단됩니다. - 공격 가치는 큽니다. 사용자가 신뢰하는 서비스 안에서 무언가 클릭한 직후 전체 탭이 피싱 사이트로 바뀔 수 있습니다.