Получить высоту iframe с внешним URL - PullRequest
9 голосов
/ 30 октября 2010

Я должен включить внешний сайт белой метки в iframe на своей странице.На внешнем сайте имеется множество страниц, и они значительно различаются по высоте.

Мне нужно отрегулировать высоту своего iframe, чтобы приспособиться к этому.

Я могу получить высоту загруженной первой страницыв iframe (с использованием PHP), но нет способа получить последующие высоты страницы, потому что нет способа узнать, на что изменяется url / location в iframe.

Поскольку это внешний URL в iframe, обычная безопасностьприменяются ограничения, поэтому ВСЕ решения должны исходить из родительского фрейма.Решение должно быть работоспособным по крайней мере в FF и IE.

Единственное, о чем я могу думать, это проверить, видны ли полосы прокрутки в iframe, но в этих обстоятельствах это, по-видимому, невозможно.* Если кто-то может доказать, что я не прав или у вас есть какое-либо другое кросс-браузерное решение javascript / ajax / php, я бы с удовольствием его услышал.

1 Ответ

8 голосов
/ 03 ноября 2010

невозможно сделать это из-за модели безопасности браузера.Если бы это было возможно, это было бы проблемой безопасности и должно было бы быть исправлено.

Хотя оповещение сайта встраивания о высоте сторонней веб-страницы, когда она встроена в страницу, кажется безвредным, это может привести к утечке информациисайт встраивания, который пользователь браузера хочет сохранить в тайне.Например, http://www.facebook.com/ отображается по-разному в зависимости от того, вошли вы в систему или нет, поэтому, если мой веб-сайт может работать с высотой <iframe src="http://www.facebook.com/">, тогда я могу определить, являетесь ли вы пользователем Facebook или нет.вероятно, не хотят, чтобы я знал.

Утечка информации была бы похожа на печально известную Утечка истории CSS в том, что она раскрывала бы информацию об отношениях пользователя со сторонним сайтом простопутем «ссылки» на этот сайт (в данном случае с помощью iframe вместо ссылки).Поставщикам браузеров пришлось отключить утечку истории CSS, поэтому я подозреваю, что если вы сможете определить высоту стороннего сайта, отображаемого в iframe в любом браузере, поставщику также придется это исправить.

Утечка информации - это все, что может быть выведено из высоты страницы при визуализации для пользователя с использованием их файлов cookie (которые браузер будет отправлять даже при рендеринге в iframe на странице другого домена).Конкретные риски полностью зависят от характера встраиваемого сайта.Например, я мог бы получить представление о том, насколько активно работает стековый поток, который посещает мой сайт, получив высоту https://stackoverflow.com/reputation, которая отличается для разных пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...