Мне нужно получить содержимое фрейма другого домена с помощью js.
Как это можно сделать? Я знаю, что стандартными методами этого сделать нельзя.
Но все же: может нужно что-нибудь отключить в браузере, чтобы это работало?
Пробовал установить false для security.fileuri.strict_origin_policy (в firefox), но это не дало результата
С ходу могу предложить хоть и несколько фантастичный но теоретически вполне рабочий вариант.
1. Сайт акцептор (ваш сайт содержащий ифрэйм) в место ифрэйма содержит некую область-картинку и скрипты, которые фиксируют действия мышки над этой областью и транслируют их на сервер.
2. На сервере стоит какой либо из вариантов безголовых браузеров, загружающих сайт-донор, производящих его рендер, отсылающих результат в виде отрендеренной картинки.
3. Также на сервере стоят скрипты, которые принимают данные о манипуляциях мышкой и клавиатурой и дублируют их для безголового браузера.
4. На клиенте скрипты принимают новый рендер сайта-донора и отображают его в области-картинке
ПыСы: такой подход конечно же не является оптимальным, абсолютно непригоденн для работы с большим числом клиентов одновременно и будет постоянно подлагивать. Но сама идея вполне рабочая и может быть доведена до ума)
Роман,
5. Сайт-донор замечает подозрительную нагрузку с подозрительного IP сервера с безголовым браузером, блочит к х_рам и вся этажерка из костылей разваливается))
Роман, ну вот из жизни пример, есть модуль отплаты от РФИ через iframe, проблема РФИ в том что у них платежи не блокируются вообще и человек может хоть через месяц оплатить покупку, а так как у нас продажа билетов - мы максимум держим бронь 20 минут. Задача была отследить содержимой iframe модуля оплаты, чтобы понять хоть на каком он этапе и если человеку не приходит смс или например он дошел до пункта ввода пароля из смс, а время истекает - дать пользователю еще пару минут... А если на этапе выбора оплаты - то блочить окно платежа и снимать бронь.
lamer350, прочитал, задумался, наверно действительно есть сектор в котором данный механизм был бы полезен, но это реальная дыра. Возможно у РФИ есть некий API для таких ситуаций. Других вариантов в голову не приходит.
Задача была отследить содержимой iframe модуля оплаты
И утащить введённый в него номер банковской карты. Мы-то понимаем истинные цели, а дать пользователю ещё больше минут - всего лишь предлог, под которым можно замаскировать велосипед для кражи данных
Роман, ну да, в примере с банковским модулем, использование левых прокси - отличный способ сделать так, чтобы банки заметили что-то подозрительное и начали блочить карты клиентов или исходящие операции, инициированные с данных IP.
SagePtr, никто не спорит, но цель была иная. так как держать бронь дольше нет возможности, билетов в сутки много продается и мы удаляем заявки из базы которые не оплачены с помощью крона и основная проблема была в том что люди оплачивают потом по истечению времени, а заявок уже нет. В итоге на концерты приходит множество людей показывая оплату, а мест нет)
Потому я не говорил о каком то сильном вмешательстве, это хороший пример того что это была бы большой уязвимостью (хотя она была раньше, пока не прикрыли), но если бы можно было хоть отслеживать ссылку например.
А чтобы воровать данные карты можно было бы не заморачиватся так, а просто левую форму сверстать и все)))
Роман, нет, с РФИ переговоры велись очень долго, не понятно в чем прикол не закрывать сессии, нигде в банков такой херни нет... У них есть API, оно позволяет блочить саму ссылку для оплаты, например когда инициирована оплата - клиенту на почту приходит письмо с ссылкой и вот ограничить время которое будет активна эта ссылка - можно! Но если человек прошел по ссылке - выбрал способ оплаты, его кидает на страничку биллинга и вот там сессия не ограничена, если человек не закроет вкладку - он может оплатить ее хоть через час, хоть через 2е суток. И тут выходов было 2, либо полностью мутить свою форму и передавать данные карт через API, либо использовать iframe в pop up окне и просто на сайте уже блочить само окно, лимит работы ссылки в письме установили в 15 секунд чтобы человек физически не успевал перейти по ней) Ну сейчас пропадающие заявки свели к минимуму) Уже только появляются в случае проблем сервисов банка, когда они калбек не направляют после успешной оплаты.
Роман, да тут ничего и не придумать больше) Заказчику делать форму с нуля и заморочки с платными SSL на компанию - было дорого, а более дешевого варианта просто нет) Все обдумал)