Как можно обойти параметры X-кадров: HTTP Sameorigin?
-
03-10-2019 - |
Вопрос
Я разрабатываю веб-страницу, которая должна отображать, в iFrame, отчет, обслуживаемый другой компанией SharePoint Server. Их в порядке с этим.
Страница, которую мы пытаемся рендерировать в iFrame, дает нам X-кадры-варианты: Sameorigin, который вызывает браузер (по крайней мере, IE8), чтобы отказаться от содержимого в кадре.
Во-первых, это то, что они могут контролировать или это то, что SharePoint только что делает по умолчанию? Если я попрошу их выключить это, могут ли они сделать это?
Во-вторых, я могу сделать что-то, чтобы сообщить браузеру, чтобы игнорировать этот заголовок HTTP и просто рендерируйте кадр?
Решение
Если 2-я компания рада вам доступа к их контенту в iFrame, им нужно выключить ограничение - они могут сделать это довольно легко в конфигурации IIS.
Вам нет ничего, что вы можете сделать, чтобы обойти его, и все, что работает, следует быстро исправлять в исправление безопасности. Вы не можете сообщить браузеру просто сделать рамку, если заголовок источника содержимого не разрешен в рамках. Это сделало бы легче для раскрытия сессии.
Если содержимое получает только вы не публикуете данные, то вы можете получить сторону страницы сервера и прокси контента без заголовка, но тогда любая спина поста должна быть недействительной.
Другие советы
Обновление 2019: Ты могу обход X-Frame-Options
в ан <iframe>
используя мой X-каркас Веб-компонент. Он расширяет элемент IFrame с помощью нескольких прокси CORS, и он был проверен в последнем Firefox и Chrome.
Вы можете использовать его следующим образом:
(Необязательно) включить Пользовательские элементы со встроенным расширяющимся полификсом Для сафари:
<script src="https://unpkg.com/@ungap/custom-elements-builtin"></script>
Включите модуль JS X-CRARK-BYPASS JS:
<script type="module" src="x-frame-bypass.js"></script>
Вставьте пользовательский элемент 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 - это вариант для меня:
- Открыть Fiddler Menu> Правила> Настройка правил (Это эффективно редактирует
CustomRules.js
). - Найти функцию
OnBeforeResponse
Добавьте следующие строки:
oSession.oResponse.headers.Remove("X-Frame-Options"); oSession.oResponse.headers.Add("Access-Control-Allow-Origin", "*");
- Не забудьте сохранить скрипт!