2017-09-08 1 views
0

속성이 sandbox="allow-scripts" 인 Iframe이 있다고 가정 해 보겠습니다.iframe 샌드 박스가 postMessages를 보내지 못하도록하는 방법이 있습니까?

iframe을로드하는 페이지를 제어 할 수도 있고 제어하지 않을 수도 있습니다. 부모 postMessage 함수를 덮어 쓰지 않고 postMessages를 보내지 못하게하는 방법이 있습니까? 부모가 내 도메인이 아닌 경우 할 수없는 경우가 있습니다.

답변

0

동료가 아이디어를 내놓았습니다. 하나는 다음과 같이 요약 할 수 있습니다. 도메인의 부모 부분을 만들어 postMessage 메소드를 겹쳐 쓸 수 있습니다.

iframe이 포함 된 상단 창을 제어 할 수없는 경우 원래 iframe을 다른 iframe 내에 넣지 않는 것이 좋습니다. 추가 프레임 계층은 방화벽 역할을 할 수 있습니다. 해당 중간 방화벽 -iframe의 postMessage-Method를 덮어 쓰면 원본 iframe이 원하는대로 postMessage를 작성할 수 있지만 방화벽 -iframe은 게시 가능 메시지를 전달하는 메시지 만 전달합니다.

물론 이것은 postMessage 호출의 대상 도메인이어야하는 것에 대한 제약이 있습니다.

관련 문제