Определить, является ли моя страница местом назначения кликджекинга

Есть ли возможность определить, загружается ли моя страница со страницы кликджекинга?

Я имею в виду, не имеет значения, является ли страница источником кликджекинга (я установил заголовок X-FRAME-OPTIONS), дело в том, переходят ли пользователи со страницы с кликджеками на мою страницу.

Первое решение, которое я нашел, — это управление HTTP-REFERER, но это тяжелая работа, потому что я не могу контролировать весь свой трафик.

Извините за мой английский.

0

Решение

Если вы не хотите, чтобы внешние сайты могли отправлять POST на ваш сайт, если у вас есть запрос POST, исходящий с другого сервера, это, вероятно, щелчок:

if($_SERVER['REQUEST_METHOD'] == 'POST' && !strstr($_SERVER['HTTP_REFERER'], 'mydomain.com') {
//probably clickjacking
}

Если у вас есть страницы, использующие GET, которые восприимчивы к перехвату кликов, вы можете либо добавить проверку HTTP_REFERER для каждой страницы, либо изменить страницу на использование POST (что обычно лучше всего подходит для обновления).

0

Другие решения

Один из вариантов — установить заголовок веб-сайта: «X-Frames-Options» на «SAMEORIGIN».

Это должно предотвратить загрузку вашего сайта в фреймы и фреймы, если исходная страница не находится в вашем домене.
Обратите внимание, что это будет работать только для определенных браузеров, например, я не думаю, что это будет работать с IE7 и ниже, и я не думаю, что это работает с Chrome. Это по крайней мере немного уменьшит вашу поверхность атаки.

Apache:

Заголовок всегда добавляет X-Frame-Options SAMEORIGIN

MDN — заголовок ответа X-Frame-Options

РЕДАКТИРОВАТЬ: Теперь, когда я понимаю лучше …

Возможно, вы можете использовать код, похожий на этот:

if (window.top !== window.self) {
// do something here
}

Это один из способов определить, загружена ли страница в iframe. Вы можете установить здесь cookie, вызвать WebService здесь или использовать window.location.href для навигации.

Вот пример защиты от разрушения фрейма при щелчке:
Кликджекинг защита

-KB

0