Запретить открывать сайт в iframe

Ограничение отображения страниц сайта во фреймах сторонних доменов позволяет защитить ресурс от Clickjacking'a и существенно снижает риск проведения Cross-site scripting атак.

Clickjacking

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

Как правило, кликджекинг осуществляется путем отображения невидимой страницы или HTML-элемента внутри iframe поверх страницы, которую видит пользователь. Пользователь считает, что нажимает на видимую страницу, но на самом деле он нажимает на невидимый элемент дополнительной страницы, расположенной поверх нее.

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

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

Запрещать встраивание вашего сайта или нет решать только вам. В этой статье мы рассмотрим способы, с помощью которых это можно выполнить.

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

Заблокировать страницы сайта в iframe

htaccess

PHP

До вызова функции header() не должно быть вывода в браузер (echo, ?>).

Заблокировать страницы в iframe (кроме собственного сайта)

htaccess

PHP

Заблокировать страницы в iframe, кроме нескольких доменов

В заголовке X-Frame-Options есть третий параметр – ALLOW-FROM, который указывает разрешенный URL, но он устарел и не работает. На смену ему пришел заголовок Content-Security-Policy с директивой frame-ancestors.

htaccess

PHP

Второй вариант, без заголовка Content-Security-Policy:

Проверка возможности встраивания сайта в iframe

Для этой цели есть онлайн сервис: http://www.tinywebgallery.com/blog/advanced-iframe/free-iframe-checker

Понравилась статья? Поделиться с друзьями:
Добавить комментарий