2010-10-30 7 views
9

내 페이지의 iframe 내에 외부 whitelabel 사이트를 포함해야합니다. 외부 사이트에는 수많은 페이지가 있으며 높이가 상당히 다릅니다.외부 URL을 사용하여 iframe의 높이 가져 오기

이 문제를 해결하려면 iframe의 높이를 조정해야합니다.

PHP를 사용하여 iframe에로드 된 첫 페이지의 높이를 얻을 수 있지만 iframe에서 url/location이 변경되는 것을 알 수 없기 때문에 후속 페이지 높이를 가져올 방법이 없습니다.

iframe의 외부 URL이므로 일반적인 보안 제한 사항이 적용되므로 모든 솔루션이 부모 프레임에서 제공되어야합니다. 해결책은 적어도 FF와 IE에서 가능해야합니다.

내가 생각할 수있는 유일한 점은 스크롤바가 iframe에 표시되는지 여부를 테스트하는 것입니다.하지만이 상황에서는 불가능할 것 같습니다.

나를 잘못 입증 할 수 있거나 다른 javascript/ajax/php 크로스 브라우저 솔루션이 있다면 듣고 싶습니다.

+0

이 질문보기 : http://stackoverflow.com/questions/466672/set-iframe-to-height-of-content-for-remote-content – Zach

+0

예, 저는 그 질문을 보았습니다. 그러나 여기서 나는 "모든 솔루션은 반드시 부모 프레임에서 나온 것이어야한다"고 강조했다. 필자가 본 대부분의 제안은 원격 페이지에 어떤 종류의 코딩을 포함합니다. – Owen

답변

8

아니요 브라우저의 보안 모델로 인해이 작업을 수행하려면이 작업을 수행해야합니다. 가능했다면 보안 문제가되고 수정해야합니다.

페이지에 포함될 때 제 3 자 웹 페이지의 높이를 알려주지 만 무해한 것처럼 보이더라도 브라우저 사용자가 비공개로 유지하려는 포함 사이트에 정보가 누설 될 수 있습니다. 예를 들어, http://www.facebook.com/은 로그인 여부에 따라 다르게 렌더링되므로 내 웹 사이트가 <iframe src="http://www.facebook.com/">의 높이에서 작동 할 수 있다면 페이스 북 사용자인지 여부를 결정할 수 있습니다. 알고있다.

정보 유출은 악의적 인 CSS History Leak과 비슷할 수 있습니다. 즉, 해당 사이트 (이 경우 링크 대신 iframe)에 "연결"하면 제 3 자 사이트와의 사용자 관계에 대한 정보가 공개됩니다. . 브라우저 공급 업체는 CSS History Leak를 연결해야했기 때문에 브라우저에서 iframe으로 렌더링 된 제 3 자 사이트의 높이를 조정할 수 있는지 의심 스럽습니다. 공급 업체는이를 수정해야합니다.

누출 된 정보는 쿠키를 사용하여 사용자가 렌더링 할 때 페이지 높이에서 추측 할 수있는 모든 정보입니다 (브라우저는 다른 도메인 페이지의 iframe에서 렌더링해도 보내 게됩니다). 특정 위험은 전적으로 임베디드 사이트가 "공격받는"특성에 달려 있습니다. 예 : 얼마나 많은 stackoverflow 활동 내 사용자가 다른 사용자에 대한 https://stackoverflow.com/reputation 높이를 얻는 내 사이트를 방문하는 아이디어를 얻을 수 있습니다.

+0

음 ... 나와 5 억 명의 다른 사람들 ;-) 당신이 가지고있는 것은 모두 익명의 정보입니다. 즉, 누군가가 로그인했습니다. – Owen

+3

정확하게는 아닙니다. 내 웹 페이지를 보는 사람이 로그인했음을 알고 있습니다. 피싱 공격을보다 효과적으로 타겟팅 할 수있는 기회를 제공합니다. 페이스 북 대신 37 개의 다른 은행 사이트 중 하나를 비밀리에 처리 할 수있었습니다. 유출 된 정보가 CSS History Leak와 유사하여 수정이 어려워졌습니다. http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history- 누출/당신이 익숙하지 않은 경우. – Day

+0

부모 프레임을 제어하고 있으면 iframe에로드 된 첫 번째 URL (Facebook 또는 은행)을 이미 알고 있습니다. 거기에 비밀은 없습니다. 이것은 CSS 히스토리 누출 (링크 감사)과 동일하지 않지만 사이트를 종료하는 데 사용 된 하이퍼 링크를 아는 것과 비교할 수 있습니다. 당신이 얻을 수있는 유일한 "추가"는 사용자가 원격 사이트에서 로그인을하는 것입니다 ... 당신이 iframe에 제공 한 URL을 사용하고 있기 때문에 당신에게 놀랄 일도 아닙니다. 즉, 그 정보는 공정한 추측 일 것입니다. – Owen