부모 message 리스너 fingerprinting
다양한 페이로드를 부모에게 던지고 응답 / 사이드 이펙트 관찰.
sandbox 정책별 동작
| 정책 | 예상 결과 |
|---|---|
| sandbox 미부착 | 동작함 |
sandbox="allow-scripts" | 동작함 |
sandbox="" (가장 엄격) | 차단됨 |
임베드 스니펫
이 코드는 임베드 전용 페이지를 사용합니다. 본인 서비스에 그대로 붙여 넣고 렌더링/차단 여부를 확인하세요.
<iframe src="https://xss-playground.com/embed/parent-message-listener-probe?lang=ko" title="XSS Playground - 부모 message 리스너 fingerprinting" width="600" height="420" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
실행
target origin
// 로그 없음
부모로부터 받은 응답
// 응답 없음
해설
- 부모 페이지에 어떤 message 리스너가 등록돼 있는지 검은상자 상태에서 fingerprinting 하는 페이지입니다. 알려진 라이브러리(iframe resizer, 유튜브 API, GTM 등) 의 페이로드 포맷을 흉내내서 응답 / 사이드 이펙트(DOM 변화, 새 message 등) 를 관찰합니다.
- 진짜 위험은 서비스가 자체적으로 등록한 커스텀 메시지 핸들러가 있을 때 입니다. 예:
{ type: "AUTH_GRANT", token: ... }같은 메시지로 인증 상태를 갈아끼우는 핸들러가 있다면 즉시 권한 우회. - 테스트 단계에서는 본인 서비스의 dev/staging 환경에 임베드해서 부모 message 리스너 / DOM 변화 / 콘솔 에러를 같이 관찰하세요.