Скопируйте информацию из iframe в документ - PullRequest
1 голос
/ 10 января 2012

Я пытаюсь скопировать информацию из iframe в мой документ, я написал это

<iframe class="Number" frameborder="0" allowtransparency="true">

     <html>
         <body id="wow">002-7375347
              </body>
    </html>

</iframe>


html = $("iframe").find("body").html();
document.write(html);

а это не работает, может кто-нибудь мне помочь? Спасибо.

1 Ответ

1 голос
/ 10 января 2012

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

Основанием для этой функции является предотвращение следующего (очень упрощенного) сценария.

  1. Вы переходите на ненадежный сайт blahblah.com
  2. Сайт создает невидимый iframe и указывает на вашу домашнюю страницу Amazon.
  3. Вы вошли в систему с учетными данными из своего браузера, и blahblah.com продолжает кражу всей вашей личной информации.

Реализованная политика в целом обобщается как

Запросы от одного источника могут выполнять код из другого источника и отображать его, но не могут программно манипулировать или проверять их содержимое.

Таким образом, ваш код может

  • Откройте iframe, но не сможете просмотреть его содержимое
  • Включите изображения из Google на своей странице, но не сможете прочитать пиксели или отправить изображение обратно на сервер
  • Выполнитьскрипт из cdn от Google.com, но он не может просматривать все, что делает код, и не может получить сам код в виде строки.

Использование того факта, что это несколько отличается от программыправильно большая часть того, что делают веб-хакеры.

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