Защита от ClickJacking
Что такое ClickJacking?
ClickJacking — это один из типов атак на сайты. ClickJacking переводится «кража клика». Суть этой атаки заключается в том, что некоторый юзер, который совершает нажатие (делает клик по ссылке) на определенную область ( та которая была сформирована ранее злоумышленником), то на самом деле нажимает на ссылку другого сайта. Часто всего — это используется для накрутки ретвитов или лайков.
Как это работает?
Принцип атаки заключается в возможности загружать атакуемый сайт в фрейм.
События могут развиваться:
- Фрейм атакуемого сайта делается прозрачным.
- Фрейм атакующего сайта (прозрачный) накладывается на привычный пользователю сайт.
Какие сайты подвержены ClickJacking-у?
Сайты которые дают возможность загружать страницы своих ресурсов во фреймы, которые находятся на других доменных именах. Чтобы загружать страницы (документы) в фреймы с других сайтов служит заголовок X-Frame-Options.
Данный заголовок имеет 4 состояния ( опций):
- DENY он блокирует загрузку сайта во фрейм.
- SAMEORIGIN дает возможность загружать домен на уровне одного сайта.
- ALLOW-FROM your_domain дает возможность загружать домен в iframe определенного домена.
- ALLOW-ALL значение по умолчанию что дает возможность атаки..
Защита от ClickJacking в Apache
Чтобы обеспечить защиту от ClickJacking в http(d)/Apache, нужно добавить заголовок в .htaccess файл.
У заголовка X-Frame-Options:ALLOW-ALL имеется 2 стабильных варианта:
Header always set X-Frame-Options SAMEORIGIN Header always set X-Frame-Options DENY
И так, если вы хотите запретить загрузку домена во фреймы ( которые могут быть на других сайтах), то стоит прописать:
#Allow Sameorigin .htaccess Header always set X-Frame-Options SAMEORIGIN
Если хотите чтобы домен не был загружен в iframe даже на вашем сайте, используйте вторую строку ( вариант с DENY):
Header always set X-Frame-Options DENY
Защита от ClickJacking в Nginx
Для nginx похожие настройки как и для apache. Открываем ваш nginx конфигурационный файл и прописываем:
add_header X-Frame-Options "SAMEORIGIN";
PS: Данную опию нужно вставить после «server»:
Проверка на ClickJacking
В своем терминале можно выполнить команду:
$ curl -IL https://linux-notes.org &>2 | grep X-Frame-Options X-Frame-Options: DENY
Вот и все! Защита от ClickJacking выполнена.