Кликджекинг (clickjacking, UI redressing) — атака, которая заставляет пользователя нажать не на то, что он видит, обычно за счёт невидимой веб-страницы, наложенной поверх безобидной.
Как работает кликджекинг
Атакующий создаёт страницу-приманку — игру, видеоплеер или кнопку «Получить приз» — и загружает поверх неё целевой сайт в прозрачном <iframe>. Жертва думает, что нажимает на приманку, но клик на самом деле приходится на кнопку скрытого сайта, где она уже авторизована благодаря своим cookie. Слабость описана как CWE-1021 (некорректное ограничение отображаемых слоёв интерфейса).
Термин ввели Джеремайя Гроссман и Роберт Хансен в 2008 году, показав, что скрытая страница настроек Adobe Flash позволяет включить веб-камеру и микрофон жертвы. Разновидности:
- Лайкджекинг — пользователь незаметно для себя ставит «лайк» или делится контентом в соцсети.
- Курсорджекинг — отображение поддельного курсора со смещением относительно настоящего.
- Многошаговые атаки, в которых пользователя проводят через несколько кликов или перетаскиваний.
Почему это важно
Как и межсайтовая подделка запроса, кликджекинг заставляет жертву действовать с собственными правами: менять настройки учётной записи, выдавать разрешения OAuth или браузера, переводить деньги или удалять данные. Поскольку жертва совершает настоящий клик, защита от поддельных запросов, например CSRF-токены, здесь не помогает. Особенно опасен кликджекинг в сочетании с межсайтовым скриптингом или на страницах, где одно нажатие подтверждает платёж, удаление аккаунта или выдачу доступа стороннему приложению.
Как предотвратить
- Отправлять директиву
Content-Security-Policy: frame-ancestors(CSP), чтобы контролировать, кто может встраивать ваши страницы. - Для старых браузеров использовать заголовок
X-Frame-Options: DENYилиSAMEORIGIN(RFC 7034). - Устанавливать сессионным cookie атрибут
SameSite, чтобы встроенные во фреймы страницы их не получали. - Требовать повторного подтверждения для важных действий.





