Страница iframe не отображается на странице фляжки [dубликат]

Я могу только догадываться, почему они поддерживают только свойства: возможно, потому что это универсальное соглашение в платформе .NET никогда не выставлять изменчивые поля (, вероятно, для защиты бинарной совместимости ), и они каким-то образом ожидал, что все программисты будут следовать одному и тому же соглашению.

Кроме того, хотя поля и свойства доступны с одним и тем же синтаксисом, привязка данных использует отражение, и (так что я слышал) отражение должно использоваться по-разному для полей доступа чем для доступа к свойствам.

33
задан Daniel Coffman 6 May 2010 в 18:26
поделиться

5 ответов

Если вторая компания рада за то, что вы получили доступ к их контенту в IFrame, тогда им нужно снять ограничение - они могут сделать это довольно легко в конфигурации IIS.

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

Если контент GET только вы не отправляете данные, тогда вы можете получить сервер страницы и прокси-контент без заголовка, но затем любой пост назад должен быть признан недействительным.

23
ответ дан Keith 15 August 2018 в 17:02
поделиться
  • 1
    отображение в iframe не разрешено, но есть ли способ получить html как необработанную строку? – Mike 21 October 2016 в 12:34
  • 2
    Вы должны очистить его и делать все, что хотите, с разметкой. – Legends 6 January 2018 в 19:33
  • 3
    @Legends это то, что я имел в виду под прокси-содержимым :-) – Keith 6 January 2018 в 19:46
  • 4
    Я бы перефразировал, вероятно ;-) – Legends 6 January 2018 в 21:02

Да Fiddler - опция для меня

В функции OnBeforeResponse для CustomRules.js (меню Fiddler> Rules> Customize Rules) добавьте следующие строки

  oSession  .oResponse.headers.Remove ( "X-Frame-Options");  oSession.oResponse.headers.Add («Access-Control-Allow-Origin», «*»);   
3
ответ дан kernowcode 15 August 2018 в 17:02
поделиться

Вы можете обойти X-Frame-Options в & lt; iframe & gt; с помощью YQL. Вот доказательство концепции, протестированной в Chrome & amp; Firefox: Hacker News в & lt; iframe & gt; .

Процесс выглядит следующим образом:

  1. Запросить URL-адрес iframe из YQL (функция loadURL ),
  2. Получить данные HTML из YQL (функция getData ),
  3. Добавить ссылку & lt; base link & gt; , и & lt; script & gt; в iframe, используя YQL,
  4. Внесите этот HTML в пустой & lt; iframe & gt; (функция loadHTML ).

Пример кода JS:

  var iframe = document.getElementsByTagName ('iframe'  ) [0];  var url = iframe.src;  var getData = function (data) {if (data & amp; & amp; data.query & amp; & amp; data.query.results & amp; data.query.results.resources & amp; data.query.results.resources.  content & amp; & amp; data.query.results.resources.status == 200) loadHTML (data.query.results.resources.content);  else if (data & amp; & amp; data.error & amp; & amp; data.error.description) loadHTML (data.error.description);  else loadHTML ('Ошибка: Не могу загрузить' + url);  };  var loadURL = function (src) {url = src;  var script = document.createElement ('script');  script.src = 'https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20data.headers%20where%20url%3D%22' + encodeURIComponent (url) + '%  22 & амп; формат = & JSON амп; диагностика = истина & амп; ENV = магазин% 3A% 2F% 2Fdatatables.org% 2Falltableswithkeys & амп; обратный вызов = GetData ';  document.body.appendChild (сценарий);  };  var loadHTML = function (html) {iframe.src = 'about: blank';  iframe.contentWindow.document.open ();  iframe.contentWindow.document.write (html.replace (/ & lt; head & gt; / i, '& lt; head & gt; & lt; base href = "' + url + '" & gt; & lt; scr' + 'ipt & gt; document.addEventListener  («click», function (e) {if (e.target & amp; e.target.nodeName == "A") {e.preventDefault (); parent.loadURL (e.target.href);}}  ); & lt; / scr '+' ipt & gt; '));  iframe.contentWindow.document.close ();  } loadURL (iframe.src);   
15
ответ дан niutech 15 August 2018 в 17:02
поделиться
  • 1
    Этот подход теперь блокируется. – Karl Glennon 8 March 2016 в 17:52
  • 2
    @KarlGlennon Он работает как минимум в Firefox 44. – niutech 8 March 2016 в 20:05
  • 3
    « Отказано в отображении« https://news.ycombinator.com/ »в фрейме, потому что он установил« X-Frame-Options »в« DENY ». & quot; Вслед за & quot; fiddle.jshell.net/:64 Uncaught SecurityError: нарушение доступа к песочнице: заблокирован кадр на странице http: //fiddle.jshell.net" от доступа к кадру при «нулевом» значении. Доступный кадр изолирован песочницей и отсутствует "разрешить-то же самое происхождение" . флаг & Quot; – brichins 14 June 2016 в 16:04
  • 4
    @brichins Обновить страницу. Это работает для меня в Firefox 46. – niutech 15 June 2016 в 14:53
  • 5
    @niutech - это работает потрясающе хорошо. Спасибо за решение. – Samir 13 July 2018 в 14:48

Что касается второго вопроса - вы можете использовать фильтры Fiddler , чтобы настроить ответ заголовок X-Frame-Options вручную на что-то вроде ALLOW-FROM * ]. Но, конечно, этот трюк будет работать только для вас - другие пользователи все равно не смогут видеть содержимое iframe (если они не делают то же самое).

4
ответ дан Pj_pavel 15 August 2018 в 17:02
поделиться

Заголовок X-Frame-Options - это функция безопасности, применяемая на уровне браузера.

Если вы контролируете свою пользовательскую базу (ИТ-отдел для приложения corp), вы можете попробовать что-то вроде greasemonkey скрипт (если вы можете) развернуть greasemonkey для всех и b) развернуть свой сценарий совместно) ...

В качестве альтернативы вы можете проксировать их результат. Создайте конечную точку на своем сервере и запустите ее, чтобы конечная точка открыла соединение с целевой конечной точкой и просто запустила трафик назад.

8
ответ дан Rob 15 August 2018 в 17:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: