2011-12-05 2 views
8

iframe이있는 페이지가 있습니다. iframe의 페이지와 소스가 다른 도메인에 있습니다. iframe 내부에서 CuteEditor라는 리치 텍스트 편집기를 사용하고 있습니다 (너무 귀엽지는 않습니다). CuteEditor에는 '문서'에 액세스하려고 시도하지만 브라우저는 동일한 도메인에 있지 않으므로 액세스를 거부하는 특정 JavaScript 함수가 있습니다. 이 minfied 모든 변수 이름은 비밀입니다 때문에 난독 화되어 있기 때문에 밖으로 질문iframe에서 상위 프레임에 액세스하지 못하게하려면 어떻게해야합니까?

Permission denied to access property 'document' http://dd.byu.edu/plugins/cuteeditor_files/Scripts/Dialog/DialogHead.js Line 1

자바 스크립트 편집 :

여기에 정확한 오류입니다.

이것은 다른 편집자를 사용하는 것이 현재 작업 프로젝트이며 이것은 내가 사용하라고 말한 편집자이기 때문에 현재 질문에서 제외되었습니다.

iframe을 독립적으로 유지하는 방법이 있습니까? 따라서 iframe 내부의 모든 작업을 수행하고 부모 프레임으로 나옵니다.

답변

-2

그런 일에 대해 걱정할 필요는 없습니다.

iframe이 교차 출처를 말할 수있는 유일한 방법은 postMessage를 사용하는 것입니다.이 방법은 해당 도메인을 직접 듣는 경우에만 가능합니다. 자식은 iframe이 다른 도메인에서로드

https://developer.mozilla.org/en/DOM/window.postMessage

+0

그러나이 오류로 인해 CuteEditor가 iframe 내부에서 작동하지 않습니다. 그렇다면 다른 문제입니까? – Justin

+0

잘 모르겠습니다. 소스 코드를 확인해야합니다. –

7

경우는 상위 페이지 또는 DOM에 액세스 할 수 없습니다.

그러나 man-in-the-middle 공격에는 여전히 취약성이 있습니다. http://yoursite.com 떨어져 당신의 페이지가로드를 가정하고 http://badsite.org

  • 처음 http://badsite.org이는 man-in-the-middle 공격을 필요로하는 단계입니다 http://yoursite.com/badpage

  • 로 리디렉션에 iframe을 간다. 침입자는 사용자와 yoursite.com을 연결하거나 DNS 조회에 대한 응답을 제어 할 수 있어야합니다. 공용 Wi-Fi 액세스 포인트를 관리 할 수있는 사람은 누구나 할 수 있습니다 (스타 벅스, 호텔, 공항). 목표는 실제 사이트가 아닌 공격자의 사이트에서 http://yoursite.com/badpage의 콘텐츠를 제공하는 것입니다.

  • 그런 다음 공격자는 (가짜) http://yoursite.org/badpage에서 원하는 악성 코드를 제공 할 수 있습니다. 이것은 메인 페이지와 동일한 도메인에 있기 때문에 상위 DOM에 대한 액세스 권한을 갖습니다.

HTML5 iframe 샌드 박스 속성이이를 피하는 방법 인 것 같습니다. spec을 읽을 수 있지만 가장 적합한 설명은 here 일 수 있습니다.

이것은 Chrome, IE10, FireFox, Safari에서 지원되는 것으로 보입니다.

"allow-same-origin"속성이 이 아니고이 아닌 경우 "콘텐츠는 고유 한 출처에서 온 것으로 취급됩니다"라고 명시되어 있습니다. 이렇게하면 브라우저에서 URL이 무엇인지에 관계없이 자녀의 iframe이 상위 DOM의 일부에 액세스하지 못하게해야합니다.

+0

공격은 진술 된 것처럼 쉽지 않습니다. 장치가 DNS에서 yoursite.com으로 주소를 가져 오면 추가 액세스를 위해 캐시됩니다. 이 공격을 완전히 구현하려면 HTTP 프록시가 필요하며 중간자가 http://yoursite.com/badpage를 iframe src로 사용하도록 웹 페이지를 다시 작성해야합니다. 이는 페이지를 변경하기 위해 프록시가 HTTPS로 HTTPS를 모방해야하기 때문에 HTTPS를 사용하면 더 복잡합니다. 불가능한 것은 아니지만 사이트가 공격자 (예 : 은행, 경매 또는 암호 수집에 사용할 수있는 엄청나게 액세스 한 사이트)에 매력적이지 않은 경우 노출이 낮습니다. – fernacolo

관련 문제