Сбор местоположения IFRAME - PullRequest
       3

Сбор местоположения IFRAME

0 голосов
/ 25 января 2011

Я создаю сценарий / приложение (на стороне клиента и на прокси-сайте), которое собирает информацию об элементах с различных веб-сайтов.

Последнее, что доставляет мне неприятностисобирает местонахождение КАДРА.Позвольте мне объяснить это более подробно:

  • Инвариант: расположение IFRAME не изменяется при взаимодействии с пользователем
  • Некоторые веб-страницы используют атрибут SRC для определения местоположения нового IFRAME - либо определеныс помощью сценариев или введенного вручную в источнике - это нормально (без проблем)
  • На других веб-страницах используются различные методы динамического заполнения IFRAME, и они не используют атрибут SRC IFRAME - Это нормально, если местоположение такого IFRAME находится внутри того же домена, в противном случае это небезопасный доступ к другому домену

Я включу один пример HTML-кода:

<html>
<body>
<a href="http://www.google.com" target="test_iframe">Click here to open an iframe.</a>
<br>
<iframe id="test_iframe" name="test_iframe"></iframe>
</body>
</html>

Поэтому, если я попробую по JavaScript это ниже, я получу пустую строку.

document.getElementById("test_iframe").src

И если я попытаюсь использовать это ниже, я получу ошибку безопасности.

document.getElementById("test_iframe").conentDocument.location.href

Таким образом, мой вопрос может быть уменьшен до:

  • Есть ли способ собрать местоположение такого IFRAME, содержимое которого находится за пределами родительского домена, а это IFRAME - без SRC атрибут?

Большое спасибо за ваши ответы: -)

1 Ответ

1 голос
/ 25 января 2011

Это называется iframejailing. Невозможно прочитать или изменить элемент iframe на странице, если он указывает на другой домен. Это встроенная функция безопасности в браузерах.

Однако для этого есть определенные обходные пути, если обсуждаемые домены могут работать совместно для создания прокси-сервера iframe (Google для получения дополнительной информации), что, по моему мнению, в данном случае неприменимо.

Ответьте, если у вас есть еще вопросы.

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