Гид по технологиям

Как защититься от clickjacking: руководство для пользователей и владельцев сайтов

7 min read Безопасность Обновлено 05 Dec 2025
Защита от clickjacking — руководство
Защита от clickjacking — руководство

Вывеска «Click and collect», иллюстрация механизма clickjacking — перенаправление кликов.

Что такое clickjacking?

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

Определение в одну строку: clickjacking — скрытое перенаправление пользовательского клика через наложение слоёв или манипуляции с DOM.

Фрагмент HTML-кода веб‑страницы

Как это работает (просто и технически)

  • Атакующий размещает прозрачный iframe или блок над страницей. Этот блок перехватывает клики.
  • CSS и позиционирование (z-index, opacity, pointer-events) используются для того, чтобы элемент выглядел невидимым и недоступным для заметного взаимодействия.
  • Иногда вредоносный элемент находится в другом домене (iframe), но визуально совпадает с кнопкой на странице.
  • В сложных вариантах атакуется не первый клик, а второй — «double clickjacking»; пользователь сначала выполняет легитимное действие, затем всплывает подтверждение и второй клик завершает атаку.

Термины: iframe — встроенный фрейм HTML; CSS — каскадные таблицы стилей.

Типы clickjacking и родственные приёмы

  • Прозрачные или скрытые оверлеи.
  • “Click event dropping” — видимость клика «теряется», но фактический клик идёт по невидимому элементу.
  • Смещение элементов так, чтобы видимая кнопка и целевой элемент не совпадали по DOM, но совпадали визуально.
  • Скроллинг с вредоносным попапом, который появляется в нужный момент.
  • Кроппинг — когда атакуют только конкретные элементы на странице (например, только кнопку «Отправить»).

Похожее злоупотребление: likejacking (перехват нажатий «Нравится»), cookiejacking, filejacking, cursorjacking и другие вариации.

Почему антивирус и защита браузера иногда не помогают

  • Атаки работают на реальных (легитимных) сайтах. Антивирусы ориентированы на известные вредоносные файлы и домены, а не на хитрые DOM‑манипуляции в браузере.
  • Если в результате клика не загружается явный вредоносный исполняемый файл, сигнатуры антивирусов не сработают.
  • Браузеры блокируют базовые iframe‑атаки, но сложные сценарии, например double clickjacking, могут обходить простые правила обнаружения.
  • Мобильные интерфейсы и тач‑жесты (double‑tap) добавляют новые векторы, где поведение не всегда отслеживается как опасное.

Робот с флажком 'Я не робот' — пример запроса на подтверждение (Captcha).

Важно: современные браузеры применяют множество защит, но абсолютной гарантии нет. Комбинация мер снижает риск до приемлемого уровня.

Практические советы для пользователей

  • Держите браузер и расширения в актуальном состоянии. Обновления часто содержат исправления уязвимостей.
  • Обновляйте плагины и расширения: уязвимые расширения можно использовать для наложения своих слоёв.
  • Наблюдайте за нестандартными подсказками. Если сайт, который обычно их не показывает, вдруг просит дополнительное подтверждение — отнеситесь к этому с осторожностью.
  • Если гиперссылка не ведёт куда ожидается (URL пустой или окно не открывается), не кликайте повторно без проверки.
  • Проверяйте подозрительные страницы через сервисы сканирования URL и загрузок перед взаимодействием.

Рекомендованные инструменты для проверки ссылок и файлов:

Страница VirusTotal — пример проверки URL/загрузок

  • URL Void

  • VirusTotal (полезно для проверок ссылок и загрузок)

  • urlscan.io

  • Отчёт прозрачности Google (Google Transparency Report)

  • Hybrid Analysis

  • Используйте блокировщики рекламы и скриптов (адблокеры, uBlock Origin, NoScript) — они снижают шанс случайного взаимодействия с вредоносными поп‑апами и оверлеями.

  • Не кликайте по навязчивым всплывающим окнам («Вы выиграли iPhone») и подозрительным рекламным элементам.

  • Проверяйте адресную строку: одна опечатка в домене может означать подставной сайт (например, maketecheasyer.com вместо maketecheasier.com).

Совет безопасности: если сомневаетесь — закройте вкладку и откройте сайт заново, не переходите по тем же подозрительным кнопкам.

Что делать, если вы подозреваете clickjacking на сайте

  1. Не подтверждайте и не вводите данные.
  2. Закройте вкладку и очистите сессию (выйдите из аккаунта, если есть риск утечки).
  3. Проверьте страницу через urlscan.io или VirusTotal.
  4. Сообщите владельцу сайта: опишите страницу, шаги воспроизведения и прикрепите скриншоты.
  5. Если вы считаете, что скомпрометировали аккаунт — сразу смените пароль и включите двухфакторную аутентификацию.

Технические защиты для владельцев сайтов

Защитить пользователей нужно на стороне сервера и фронтенда. Основные приёмы:

  • Заголовок X-Frame-Options — указывает, может ли страница загружаться в iframe.
    • Примеры:
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
  • Content-Security-Policy (CSP) с директивой frame-ancestors — более гибкая и современная альтернатива.
Content-Security-Policy: frame-ancestors 'none'
Content-Security-Policy: frame-ancestors 'self' https://trusted.example.com
  • Защитите чувствительные формы и действия дополнительной валидацией на сервере. Не полагайтесь только на UI‑проверки.
  • Применяйте проверку реферера и токены CSRF для подтверждающих операций.
  • Минимизируйте использование внешних скриптов и iframe от ненадёжных поставщиков.
  • Для интерактивных элементов добавьте явные визуальные подтверждения (модальные окна с подтверждением и повторной валидацией на сервере).

Примечание: framebusting‑скрипты (самодельные способы «выламывания» из фрейма) ненадёжны и легко обходятся. Надёжнее контролировать поведение через заголовки.

Особенности защиты от double clickjacking

Double clickjacking использует два этапа клика: первый — легитимный, второй — замаскированный. Дополнительные меры:

  • Сокращайте количество ситуаций, где сайт просит незапланированные подтверждения. Если подтверждения нужны — поясняйте причину и последствия.
  • Применяйте одноразовые подтверждающие токены и server-side проверки при втором клике.
  • Разделяйте UI‑слои и избегайте всплытий, которые могут совпадать с чужими элементами.

Чеклист для пользователей (быстро)

  • Браузер обновлён.
  • Расширения — только от проверенных разработчиков.
  • Включён адблокер/блокировщик скриптов.
  • Не кликаю по странным поп‑апам и рекламе.
  • Перед повторным кликом проверяю, куда ведёт ссылка.

Чеклист для владельцев сайтов (быстро)

  • Настроен X-Frame-Options или CSP frame-ancestors.
  • Чувствительные действия требуют серверной валидации и CSRF‑токенов.
  • Минимизация сторонних iframe и скриптов.
  • Логирование и мониторинг необычных паттернов кликов.

Инцидентный план и откат

  1. Быстрая оценка: подтвердите признаки clickjacking (скриншоты, шаги воспроизведения).
  2. Ограничьте доступ: временно отключите уязвимые страницы или добавьте строгий CSP.
  3. Проанализируйте логи и источники включения сторонних элементов.
  4. Сообщите пользователям и предложите инструкции по смене паролей, если есть риск компрометации.
  5. Восстановите работу после тестирования исправлений и мониторинга.

Критерии приёмки для исправления:

  • Страница не загружается в iframe стороннего домена при тестах.
  • Нет возможности сработать через наложенные невидимые элементы в автоматических тестах.
  • Логи не фиксируют подозрительной активности после патча.

Тесты и сценарии приёмки

  • Тест 1: попытка загрузить страницу в iframe с другого домена — ожидание: запрещено (X-Frame-Options/CSP блокирует).
  • Тест 2: попытка наложить прозрачный элемент и отлов кликов через скрипт — ожидание: взаимодействие не приводит к чувствительным действиям без server‑side валидации.
  • Тест 3: эмуляция double clickjacking — ожидание: второй клик требует действительной одноразовой валидации.

Мини‑глоссарий

  • Clickjacking — скрытое перенаправление кликов через наложение слоёв.
  • Iframe — встроенный фрейм веб‑страницы.
  • CSP — Content Security Policy, политика безопасности контента.
  • X-Frame-Options — старый заголовок для блокировки фреймов.

Когда защитные меры могут не сработать (ограничения)

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

Риски и смягчающие меры

  • Риск: компрометация учётной записи через невольное подтверждение действий. Митигирование: двухфакторная аутентификация, server-side подтверждения.
  • Риск: массовые подделки кликов через рекламные сети. Митигирование: строгая политика контента, блокировка ненадёжных источников.

Часто задаваемые вопросы

Как быстро понять, что я стал жертвой clickjacking?

Если вы вдруг подтвердили действие, которое не планировали (например, подписка, установка расширения или неожиданный платёж), возможно, это clickjacking. Проверьте историю действий в аккаунтах и журналы загрузок.

Может ли мобильный браузер быть безопаснее или опаснее?

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

Поможет ли отключение JavaScript?

Отключение JavaScript значительно усложнит большинство clickjacking‑атак, но также сломает многие сайты. Используйте этот метод как крайнее средство или применяйте блокировщики скриптов выборочно.

Короткое объявление для пользователей (100–200 слов)

Clickjacking — это приём, при котором злоумышленник заставляет вас по ошибке кликнуть на скрытую кнопку или ссылку. Чтобы защититься: обновляйте браузер и расширения, используйте адблокер и проверяйте подозрительные всплывающие окна. Владельцам сайтов важно настроить X-Frame-Options или Content-Security-Policy (frame-ancestors) и не полагаться только на клиентскую логику для подтверждений. Если вы заметили странное поведение на сайте — прекратите взаимодействие, проверьте ссылку через сервисы вроде VirusTotal или urlscan.io и сообщите владельцу сайта.

Заключение

Clickjacking остаётся реальной угрозой, особенно в виде более сложных вариантов, как double clickjacking. Сочетание пользовательской бдительности и технических мер со стороны сайта значительно снижает риск. Применяйте простые правила безопасности и проверяйте сомнительные элементы прежде, чем кликать.

Сводка: обновляйте ПО, используйте блокировщики, проверяйте ссылки и применяйте заголовки безопасности на сайтах.

Image credit: Unsplash. Все скриншоты предоставлены Crystal Crowder.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как редактировать отправленное сообщение в WhatsApp
Мессенджеры

Как редактировать отправленное сообщение в WhatsApp

Почему вместо эмодзи появляется «OBJ» — причины и решения
Техподдержка

Почему вместо эмодзи появляется «OBJ» — причины и решения

Управление уведомлениями EA Origin
Игры

Управление уведомлениями EA Origin

Отключить предпросмотр ссылок в Google Sheets
Google Sheets

Отключить предпросмотр ссылок в Google Sheets

Настройка новой вкладки в Microsoft Edge
Браузеры

Настройка новой вкладки в Microsoft Edge

Удаление рамок в Microsoft Word
Microsoft Word

Удаление рамок в Microsoft Word