Можно ли встроить ваш сайт на чужой странице?
Кликджекинг прячет вашу настоящую страницу в невидимом фрейме на чужом сайте, и посетитель нажимает ваши кнопки, сам того не зная. Вставьте URL и проверьте, могут ли другие сайты встроить её во фрейм и опасно ли это для ваших посетителей.
- X-Frame-Options
- CSP frame-ancestors
Это ваш URL, загруженный во фрейм на нашей странице, как это сделал бы злоумышленник. Если вы видите страницу, любой сайт может сделать то же самое. Если во фрейме ошибка вроде "refused to connect", браузер заблокировал встраивание.
Этот URL использует обычный http, который браузеры не загружают внутри страницы https, поэтому фрейм в любом случае останется пустым. Ориентируйтесь на вердикт по заголовкам выше.
Как исправить
Отправляйте Content-Security-Policy с frame-ancestors, а для старых браузеров ещё и X-Frame-Options. Добавьте оба заголовка на веб-сервере перед вашим сайтом.
nginx
add_header Content-Security-Policy "frame-ancestors 'self'" always;
add_header X-Frame-Options "SAMEORIGIN" always;
Apache
Header always set Content-Security-Policy "frame-ancestors 'self'"
Header always set X-Frame-Options "SAMEORIGIN"
Используете Odoo? Ставьте 'self', а не 'none': редактор сайта показывает ваши собственные страницы во фрейме на том же домене. CICDoo включает эти заголовки по умолчанию на каждом инстансе, который разворачивает.
Как работает атака
Ваша страница, чужие клики
Невидимый фрейм
Злоумышленник загружает вашу настоящую страницу в прозрачный iframe и накладывает её поверх приманки, например кнопки с призом или видеоплеера.
Настоящий клик
Посетитель уже вошёл на ваш сайт. Его клик попадает на вашу страницу: он подтверждает платёж, меняет email или выдаёт доступ.
Один заголовок останавливает атаку
frame-ancestors или X-Frame-Options сообщает браузеру, каким сайтам можно встраивать вас во фрейм. Без него браузер разрешает это всем.
FAQ
Ответы на ваши вопросы
Что проверяет этот тест?
Мы запрашиваем URL с нашего сервера и читаем два заголовка ответа: X-Frame-Options и директиву frame-ancestors из Content-Security-Policy. Страница также загружает URL во фрейм, чтобы вы увидели результат в своём браузере.
Какой заголовок использовать?
frame-ancestors это современный стандарт, и при его наличии он всегда главнее. Для старых браузеров оставьте и X-Frame-Options. Используйте 'self', чтобы разрешить только свой домен, или 'none', чтобы запретить любые фреймы.
Почему фрейм пустой?
Некоторые сайты запрещают встраивание, показывают пустую страницу незнакомым посетителям или используют обычный http, который браузеры не загружают внутри страницы https. Вердикт по заголовкам от вашего браузера не зависит.
Уязвим ли мой сайт, если его можно встроить во фрейм?
Не обязательно. Для кликджекинга нужна страница с важным действием, например платежом или изменением настроек, посетитель, который вошёл в систему, и сессионная cookie, которую браузер отправляет во фрейм на чужом сайте. Современные браузеры не отправляют cookie без SameSite=None, поэтому встроенная страница обычно открывается без входа. Заголовки всё равно стоит добавить: они закрывают эту дверь окончательно, и аудиты безопасности их проверяют.
ALLOW-FROM ещё поддерживается?
Нет. Современные браузеры игнорируют X-Frame-Options ALLOW-FROM. Чтобы разрешить конкретные партнёрские сайты, перечислите их в frame-ancestors.
Вы сохраняете URL?
Мы храним только запись о запросе для ограничения частоты, без URL и результата.
Заголовки безопасности, о которых не нужно помнить.
CICDoo запускает Odoo на ваших собственных серверах, с защитой от встраивания во фреймы, SSL, двухфакторным входом, резервными копиями и ежедневной проверкой безопасности каждого инстанса.
Без оплаты за пользователей. Ваши серверы остаются вашими.