Вопрос

Я разрабатываю веб-страницу, которая должна отображать, в iFrame, отчет, обслуживаемый другой компанией SharePoint Server. Их в порядке с этим.

Страница, которую мы пытаемся рендерировать в iFrame, дает нам X-кадры-варианты: Sameorigin, который вызывает браузер (по крайней мере, IE8), чтобы отказаться от содержимого в кадре.

Во-первых, это то, что они могут контролировать или это то, что SharePoint только что делает по умолчанию? Если я попрошу их выключить это, могут ли они сделать это?

Во-вторых, я могу сделать что-то, чтобы сообщить браузеру, чтобы игнорировать этот заголовок HTTP и просто рендерируйте кадр?

Это было полезно?

Решение

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

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

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

Другие советы

Обновление 2019: Ты могу обход X-Frame-Options в ан <iframe> используя мой X-каркас Веб-компонент. Он расширяет элемент IFrame с помощью нескольких прокси CORS, и он был проверен в последнем Firefox и Chrome.

Вы можете использовать его следующим образом:

  1. (Необязательно) включить Пользовательские элементы со встроенным расширяющимся полификсом Для сафари:

    <script src="https://unpkg.com/@ungap/custom-elements-builtin"></script>
    
  2. Включите модуль JS X-CRARK-BYPASS JS:

    <script type="module" src="x-frame-bypass.js"></script>
    
  3. Вставьте пользовательский элемент X-Frame-Bypass:

    <iframe is="x-frame-bypass" src="https://example.org/"></iframe>
    

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

Если у вас есть контроль над своей базой пользователя (IT DEPT для приложения CORP), вы можете попробовать что-то вроде сценария Greasemonkey (если вы можете) развернуть Greasemonkey через всех, а б) развернуть свой скрипт в общем виде) ...

Кроме того, вы можете прокси свой результат. Создайте конечную точку на своем сервере и имейте эту конечную точку открыть соединение с целевой конечной точкой и просто воронковым трафиком назад.

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

Да fiddler - это вариант для меня:

  1. Открыть Fiddler Menu> Правила> Настройка правил (Это эффективно редактирует CustomRules.js).
  2. Найти функцию OnBeforeResponse
  3. Добавьте следующие строки:

    oSession.oResponse.headers.Remove("X-Frame-Options");
    oSession.oResponse.headers.Add("Access-Control-Allow-Origin", "*");
    
  4. Не забудьте сохранить скрипт!
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top