Same-Origin Policy 프로브 (실패 확인용)
parent.document, parent.localStorage 등 SOP 가 막아주는 영역을 직접 확인.
sandbox 정책별 동작
| 정책 | 예상 결과 |
|---|---|
| sandbox 미부착 | 차단됨 |
sandbox="allow-scripts" | 차단됨 |
sandbox="" (가장 엄격) | 차단됨 |
이 시나리오는 sandbox 와 별개로 Same-Origin Policy 가 직접 차단합니다.
임베드 스니펫
이 코드는 임베드 전용 페이지를 사용합니다. 본인 서비스에 그대로 붙여 넣고 렌더링/차단 여부를 확인하세요.
<iframe src="https://xss-playground.com/embed/sop-probe?lang=ko" title="XSS Playground - Same-Origin Policy 프로브 (실패 확인용)" width="600" height="420" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
이 페이지는 "안 되는 것" 을 확인하는 페이지입니다. 모든 시도가 차단되어야 정상입니다. 부모와 같은 origin (같은 사이트 내) 에서 임베드 한 경우에는 일부가 성공할 수 있습니다.
실행
// 로그 없음
해설
- cross-origin iframe 은 부모의 DOM, storage, cookie 를 직접 읽지 못합니다. 이게 진짜 SOP 가 보호해 주는 영역입니다.
- 반면
parent.location쓰기,parent.postMessage, form submit, fetch 송신 자체 는 cross-origin 이어도 허용됩니다. 차단은 모두 sandbox 와 부모 측 검증에 의존합니다. - cross-origin iframe 의 위험 표면은 직접적인 부모 데이터 탈취보다 "사용자 기만", "메시지 핸들러 오용", "자동 요청" 쪽에 더 가까울 때가 많습니다. 이 페이지를 돌려보면 그 경계가 분명해집니다.