Как запретить доступ вашего сайта к сторонним сайтам в iframe

Чтобы запретить доступ к документу в iframe, нам нужно изменить X-Frame-Options документа с использованием мета-тега и (или) реализовать фреймбастер с помощью Javascript. Такие сайты, как YouTube, запрещают ему доступ из iframe, если вы пытаетесь встроить их веб-сайт в iframe, т.е.

Вы найдете сообщение об ошибке в консоли:

Ошибка : Отказался отображать «https://www.youtube.com/» во фрейме, поскольку для «X-Frame-Options» установлено значение «SAMEORIGIN».

Запретить доступ из фрейма для всех

Следующий тег запретит доступ с веб-сайта независимо от запроса.

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

Запретить доступ с других сайтов

Следующий тег запретит доступ с веб-сайта независимо от запроса.

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

Насколько надежен этот метод

Если вы действительно задали себе вопрос (не читая этот абзац), то вы задаете большой вопрос, и действительно, X-Frame-Options чувствительны к атаке Clickjacking.

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

Вы можете повысить защиту веб-сайта, который не предназначен для загрузки в iframe, реализующий Framekiller. Framekillers реализованы с использованием JavaScript, который проверяет, является ли текущее окно основным окном, вы можете использовать следующий фрагмент, написанный на JS, в качестве простого Framekiller на веб-странице, которую вы хотите заблокировать в iframes.

if (top.location != self.location) {
top.location = self.location.href;
}

Это решение работает, однако оно все еще ненадежно. Следующие ситуации могут сделать скрипт выше бесполезным:

  • Пользовательский агент не поддерживает JavaScript.
  • Пользовательский агент поддерживает JavaScript, но пользователь отключил поддержку.
  • Поддержка JavaScript в пользовательском агенте некорректна или частично реализована.

Наконец, рекомендуется использовать X-Frame-Options на страницах, которые не предназначены для запуска во фрейме, а также использовать скрипт.

Повеселись !

Ссылка на основную публикацию
Adblock
detector