Кликджекинг

Кликджекинг

Отношение поисковых систем

Яндекс относит кликджекинг к факторам, негативно влияющим на ранжирование сайта, потому что технология в той или иной степени наносит вред пользователям.

При обнаружении использования обманной технологии позиции сайта в органической выдаче Яндекса понизятся, пока не прекратится использование кликджекинга.

Отмечают проседание позиций на 20–30 пунктов и заметное снижение поискового трафика по брендовым запросам.

Ограничения в ранжировании снимаются в течение двух неделей после устранения проблемы. В редких случаях нужен срок немного больше.

Наложение санкций за кликджекинг отображается в разделе «Безопасность и нарушения» в Яндекс.Вебмастере.

В Яндекс.Браузере сайт будет показываться с предупреждением, что может заметно сказываться на кликабельности.

Решение о наложении санкций применяется только по актуальным данным. То есть использование кликджекинга, например, месяц назад не сказывается на его сегодняшнем положении в выдаче Яндекса.

Если код обманной технологии есть, но неактивен, ограничения в ранжировании на поиске Яндекса не будет.

Google официально не понижает позиции сайта в выдаче, но замеченные в использовании ресурсы исключаются из контекстно-медийной сети, их владельцы не смогут зарабатывать на размещении рекламы от Гугла.

Риски

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

Разработчики не афишируют, что применяют кликджекинг. А результат его работы, например кражу персональных данных, могут выдавать как цель, достигаемую другими методами.

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

При решении вопроса о добавлении какого-либо кода на сайт должны насторожить следующие обещания разработчика:

  • идентифицировать пользователей по аккаунтам в социальных сетях;
  • предоставлять информацию, которую пользователь явно не указывает.

Сервисы, оказывающие подобные услуги, необязательно используют кликджекинг, так как есть и другие, легальные технологии, не обманывающие пользователей и не вызывающие понижение в ранжировании в Яндексе. Но недобросовестные разработчики могут на самом деле применять и кликджекинг, выдавая за него другую методику. Поэтому нужно проверять работу всех добавляемых на сайт элементов.

Код может быть размещен осознанно или нет не только владельцем сайта. Технологию могут внедрить злоумышленники, взломав ресурс.

Как обнаружить кликджекинг

Если в Вебмастере Яндекса появилось сообщение, что сайт использует обманную технологию, нужно выявить элементы, содержащие вредоносный код.

Найти их можно с помощью специального софта или вручную.

Пример софта – расширение Clickjacking Reveal для браузера Google Chrome. Нужно произвести установку, на исследуемом сайте открыть Developer Tools (Ctrl + Shift + I), обновить страницу (Ctrl + F5). Расширение найдет вредоносный код. Если он есть, откроется вкладка Source. В ней будут указаны скрипты, использующие обманную технологию.

Чтобы найти кликджекинг вручную, нужно выявить скрытые элементы. Для этого используется консоль браузера. Во время проверки нужно быть авторизованным в какой-нибудь социальной сети.

Необходимо выполнить следующие действия:

  1. Авторизоваться в соцсети (например, во «ВКонтакте»).
  2. Очистить cookies сайта в браузере.
  3. Открыть консоль (сочетание клавиш Ctrl + Shift + I или Ctrl + Shift + K для Mozilla Firefox).
  4. Загрузить исследуемую страницу.
  5. Произвести какие-нибудь действия, имитируя активность обычного пользователя.
  6. Посмотреть, есть ли обращение к социальной сети. Для этого на вкладке «Сеть» в консоли нужно поискать записи, соответствующие событиям соцсети. Для «ВКонтакте» это widget_auth.php – авторизация, widget_like.php – лайк.
  7. Далее нужно найти код, вызывающий подгрузку скрытых элементов. Во вкладке «Инспектор» нужно найти фрагменты кода, обращающиеся к социальным сетям. Каждый элемент нужно проверить: относится он к видимому или скрытому участку. Для этого достаточно навести курсор и посмотреть выделенную область экрана.
  8. Если на вкладке «Сеть» есть обращение к социальным сетям, а во вкладке «Инспектор» не удается обнаружить вызывающий его фрагмент кода, – это кликджекинг.
  9. Выявить код можно, последовательно удаляя сомнительные фрагменты, проверяя при этом, не исчезло ли обращение к социальным сетям. Особое внимание следует уделить элементам script, iframe и object.

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

После устранения кода кликджекинга нужно зайти в раздел «Безопасность и нарушения» в Вебмастере Яндекса и нажать на кнопку «Я все исправил», чтобы быстрее произошла повторная проверка.

Что не относится к кликджекингу

Внедрение санкций со стороны Яндекса за кликджекинг вызвало много вопросов о некоторых размещаемых на сайтах элементах. Что не попадает под определение и может использоваться:

  • код для ретаргетинга из «ВКонтакте». При его установке собирается информация о том, что на сайте смотрел пользователь, а потом в соцсети ему демонстрируется «догоняющая» реклама. Так как все данные обезличены, это не кликджекинг;
  • формы для оставления комментариев через социальную сеть. Если они не скрытые, то не попадают под определение и не влияют на положение сайта в выдаче Яндекса;
  • социальный замок. Делает недоступной часть контента, пока ссылкой на страничку не поделятся в соцсети. Такой замок не собирает данные, и пользователь о нем знает, поэтому никаких санкций.

Не любое взаимодействие сайта с социальной сетью может относиться к кликджекингу. Обманная технология – это только та, которая работает без ведома пользователей, скрыта от них, тайно получает данные, которые они не собирались о себе сообщать, или заставляет неосознанно совершать незапланированные действия. За использование легальных технологий, обращающихся к соцсетям, со стороны Яндекса нет санкций.

Что такое кликджекинг

Кликджекинг (от англ. Clickjacking) – это технология обмана пользователей интернета, основанная на том, что на странице кроме видимых элементов располагаются невидимые. Невидимые кнопки, ссылки размещаются поверх видимых кнопок и ссылок — там, где кликают пользователи. Соответственно, по клику происходит действие, которого пользователь не ожидал: например, подписка на какую-то группу в соцсети.

В Рунете одним из распространенных проявлений кликджекинга стал так называемый «соцфишинг».

Соцфишинг – это одна из технологий определения контактных данных по профилю в социальной сети для пользователя, который зашел на сайт, но не оставлял никаких данных. Для этого нужно выполнить 2 условия: посетитель сайта должен быть авторизован в социальной сети, а также выполнить хотя бы 1 клик на сайте.

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

На сайте появляется невидимый слой (фрейм), куда загружается кнопка «Мне нравится» от ВКонтакте, которая следует за курсором. Как только вы где-то кликнете, то автоматически нажмете эту невидимую кнопку. Если вы в браузере авторизованы в социальной сети ВКонтакте, то такое действие поможет сервису определить ваш профиль и получить общедоступные данные профиля (адрес профиля, имя, а также телефон и мейл, если они общедоступны).

После чего эти данные передаются сервису, а он уже продает их владельцу сайта, установившему код. Используя их, вы можете связаться с людьми, которые заходили к вам на сайт. Стоит ли говорить, что они этого не ожидают, ведь они не передавали вам никакие персональные данные?

Результат действия подобного сервиса примерно такой: вам в личные сообщения пишет неизвестный человек и предлагает услугу.

Во всех случаях, что мы видели, подобные сервисы используют именно кликджекинг и Яндекс с этим согласен.

Будьте внимательны! Авторы подобных сервисов могут утверждать, что их скрипт «дружит» с Яндексом, поэтому внимательно изучайте, как работают скрипты, которые устанавливаете себе на сайт. Если сервис предлагает что-то похожее на описанное выше – подумайте и почитайте отзывы о нем.

При этом обычные виджеты соцсетей, конечно же, не являются кликджекингом:

Фильтр за кликджекинг

В декабре 2015 года Яндекс ввел новый фильтр за кликджекинг (), который наказывает за использование подобных технологий. Заявлено, что такие сайты будут ранжироваться ниже.

Действительно, после попадания сайта под фильтр он практически по всем запросам проседает примерно на 20 позиций.

29 января 2016 года и статистикой: за время работы нового фильтра было обнаружено более 15 000 сайтов, использовавших кликджекинг, а также около 50 сервисов, которые данную технологию предлагали.

Еще ряд важных тезисов из этой статьи:

  1. Алгоритм принимает решение только по актуальным данным.
  2. Если код кликджекинга не активен – санкций не будет. Алгоритм Яндекса наказывает не за код какого-то сервиса, а за использование технологии.
  3. Многие сайты используют кликджекинг ненамеренно, он просто присутствует в ряде сервисов как дополнительный функционал. Большинство из этих сервисов отключили использование кликджекинга по умолчанию после появления фильтра.

К сожалению, с данным фильтром пришлось столкнуться и нам, поэтому алгоритм снятия фильтра будет дополнен данными реального кейса.

Все началось с того, что по одному из продвигаемых сайтов просели позиции без апдейта 16-го февраля. Просели на 12-28 позиций. В среднем, примерно на 20 позиций – так можно достаточно легко определить санкции такого рода. Позиции проседают по 60-90% запросов.


Динамика позиций проекта (справа-налево)

В нашем случае отслеживалось 394 запроса: в ТОП10 – было 83%, стало 171 – 36%. 57% запросов выпали из ТОП10 Яндекса.

Как найти скрипт кликджекинга и проверить сайт?

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

Сперва приведем краткую инструкцию от Яндекса:

Если вы не можете определить какой из скриптов может вызывать проблему, определите сперва, какие скрипты подключены на сайте. Для этого зайдите в исходный код сайта (комбинация Ctrl+U в браузере) и поищите в коде следующее (комбинация Ctrl+F в браузере):

  • .js
  • <script
  • base64

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

Если вы найдете в коде скрипт, который содержит base64 – значит используется кодирование данных в ASCII текст и это главный кандидат на проверку. Вот пример кода сервиса, использующего кликджекинг:

Также можно проверить, не подключается ли виджет «Мне нравится» от ВКонтакте. Например, используем плагин Firebug для браузера FireFox и смотрим данные на вкладке Сеть – Все.

Важно! Если вы найдете, что подключаются скрипты от ВКонтакте, это не значит, что у вас используется кликджекинг. Это может быть кнопка «Мне нравится» для сайта.

Пример: нашли, что подключается виджет лайков от vk.com (ищем widget_like_php). Стоит ли паниковать в данном случае?

Нет, ведь на странице есть кнопка, она не скрыта и используется строго по назначению:

В нашем случае мы нашли при проверке вот такой скрипт:

Мы были в курсе, что этот сервис использует кликджекинг, поэтому дальше нужно было его удалить. Но не все может быть так просто.

Посмотрите еще один пример:

В данном случае вроде бы нет ничего подозрительного, просто непонятный код, но есть ссылка на goo.gl – это сервис сокращения ссылок. Если мы пройдем по ссылке, то увидим подключение скрипта. Это более хитрый способ скрытия скрипта от Яндекса, поэтому надо проверять все досконально. Как видим, тут подключается все тот же скрипт.

Отлично, скрипт найден, удаляем его самостоятельно либо поручаем программисту.

Обратите внимание, что скрипт может быть внедрен на сайт с помощью Google Tag Manager, поэтому вы не найдете его в исходном коде. Если GTM установлен на сайте, проверьте содержимое контейнера Google Tag Manager.

Итак, скрипт удален! Что дальше? Идем в Яндекс.Вебмастер и нажимаем кнопку «Все исправил» под сообщением о санкциях. Но сперва убедитесь, что вы действительно устранили проблему и обратите внимание на некоторые нюансы от Яндекса:

После нажатия кнопки вы увидите следующее:

Это только дополнительный способ сообщить об устранении кликджекинга. Алгоритм среагирует после переиндексации сайта. Мы на всякий случай написали в техподдержку после устранения проблемы, но это не поможет – процесс автоматизирован. Вот ответ Яндекса:

Примерный срок снятия санкций, заявленный Яндексом, — 2 недели. В нашем случае это произошло гораздо быстрее.

Но вы можете ускорить переиндексацию сайта с помощью инструмента «Инструменты» — «Переобход страниц» в Яндекс.Вебмастере: можно переиндексировать в приоритетном порядке до 10 страниц в день.

Ответы на вопросы

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

— 253 комментария
— 119 комментариев

Вопрос 1: будет ли штраф, если вебмастер сделает фон сайта кликабельным, (например, разместит там брендированную рекламу), а пользователь по ошибке туда кликнет.

Вопрос 2: будет ли штраф за «социальный замок», когда полезный контент показывается пользователю в обмен на лайк или репост в соцсети?

Вопрос 3: я использую сервис, в котором есть возможность включить функцию с использованием кликджекинга, но она отключена. Я могу попасть под фильтр?

Вопрос 4: у меня санкции за кликджекинг, но никак не могу найти код у себя на сайте. Что делать?

Вопрос 5: я использовал код кликджекинга в 2015, но уже давно его удалил. Почему сайт под фильтром?

Вопрос 6: я не использую ни одну из указанных систем, использующих соцфишинг, почему сайт под фильтром?

Вопрос 7: можно ли где-то проверить код сервиса, не использует ли он кликджекинг? Авторы сервиса уверяют, что санкций не будет.

Вопрос 8: код ретаргетинга Вконтакте – это кликджекинг?

Кликджекинг или нет? Фильтр Яндекса за обманные технологии

Как говорят, знал бы прикуп, жил бы в Сочи. Однако это уже будет не красивая игра, а мухлеж с краплением карт. К чему все это? Да все просто. Каждый бизнесмен не откажется узнать ценную информацию о своих потенциальных клиентах, которую можно будет использовать для повышения продаж. Скажем, профиль ВКонтакте, телефон, почту или что-то еще.

Но далеко не каждый посетитель согласится оставить такую информацию о себе. И тут на помощь предпринимателям всегда готовы прийти сторонние сервисы по получению информации. Как оказывается, не все такие методы работы с клиентами в глазах поисковых систем, а в частности Яндекса, законны.

Не хочет клиент оставлять вам данные – силой их брать не стоит (и обманом тоже). Эти действия называются страшно красивым словом «кликджекинг», они караются санкциями с понижением позиций в органике.

На самом деле, кликджекинг явление не новое.

Яндекс порадовал мир санкциями за серые методы выуживания информации у посетителей сайта (именно это и называется кликджекингом) еще в декабре 2015 года. Вскользь об этой технологии мы уже писали.

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

  1. Чем опасен кликджекинг?

    Как таковая технология кликджекинга для сайта не опасна. Ну стоит код, который подгружает данные о пользователях, самому сайту от этого ни холодно ни жарко. Проблема не в коде, проблема в том, что с таким поведением активно борется Яндекс. За кликджекинг предусмотрены санкции с понижением позиций от 20 – 30 пунктов и более.

    Примечательно то, что в настоящее время вебмастера не получают уведомлений о том, что на сайте используется запрещенная технология и за это могут быть наложены санкции. Поставил ты себе код какого-нибудь новомодного счетчика в маркетинговых целях, сайт оказывается под санкциями, а ты и не догадываешься об этом.

    Как говорят яндексовцы, в ближайшее время появится такое предупреждение, но пока только постфактум вы можете получить сообщение с ай-яй-яй о применении к сайту санкций за установку и использование запрещенного кода.

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

  2. Что принимают за кликджекинг?

    Пользователи не до конца разбираются в том, что за зверь этот кликджекинг. Поэтому на практике возникает много вопросов. Даже если посмотреть на скрин выше (там речь идет о коде для ретаргетинга из ВКонтакте, который устанавливается на сайте), видно, что мнения разделились. И часть людей считают это кликджекингом. Чисто теоретически код для ретаргетинга из ВКонтакте вполне можно отнести к кликджекингу. Но пока прецедентов не случалось.

    Таргетированная реклама по коду из соцсетей, как я уже писала, – это, пожалуй, самый волнующий вопрос, да оно и понятно. Если рассматривать принцип работы, то он вполне вписывается в схему кликджекинга. Смотрите сами: вы ставите код на сайт, пользователь заходит, смотрит нужные разделы, в это время система подхватывают о нем информацию и собирают его в специальные базы. После чего за пользователем начинает гоняться реклама холодильника, ну или что он там смотрел.

    Яндекс напрямую ничего не говорит про код из ВК:

    Судя по всему, код ретаргетинга может рассматриваться как кликджекинг, но, скорее всего, для него сделано исключение.

    С этим же вопросом я обратилась в службу поддержки ВКонтакте.

    Что делать? Использовать спокойно, пока санкций за это не замечено.

    Что еще может быть под подозрением:

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

      Конечно, это отнести к кликджекингу нельзя, ведь посетитель сразу видит условия и сам принимает решение, делиться информацией или нет. Да и потом, система не собирает данные о пользователях, вы просто улучшаете шаринг своего контента, не совершая ничего незаконного. Использовать можно.

    • Форма подписки (когда на сайте открывается поп-ап и большая часть контента скрыта) – такие способы собрать информацию о пользователе также вызвали сомнения в честности. Однако напрасно, нет в них ничего запрещенного.

      Всплывающее окно видно, его практически всегда легко закрыть. Пользователь видит форму и сам принимает решение, что делать: оставить контактные данные или закрыть форму и смотреть контент.

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

    • Активный фон сайта (здесь речь идет о том, что пользователь случайно может кликнуть не на ту кнопку или перепутать элементы). Также к кликджекингу не относится, хотя и очень похоже.

      Здесь больше вопросы к юзабилити и удобству сайта. Делайте все гармонично, смотрите, чтобы пользователям было комфортно и интуитивно просто на вашем сайте. Не обманывайте, пусть покупка будет желанной, а не случайной (чтобы гаденького осадочка не осталось). Но в целом лучше не использовать.

    • Push-рассылки. Кто не знает – это небольшие сообщения, которые появляются во всплывающем окне при просмотре сайта. Своего рода альтернатива рассылкам. К кликджекингу отношения не имеет, поскольку сообщения будут показываться только после того, как вы согласитесь их просматривать.

      Никаких данных в этих случаях о пользователе не собирается дополнительно. К минусам, разве что назойливость можно отметить. Использовать можно, но не для всех тематик подойдет.

    Страхи и мифы мы рассмотрели. Теперь коротко скажу, чего стоит опасаться.

    Итак, если код, который вы ставите на сайт, будет получать от пользователей данные, которые они самостоятельно не предоставляют (телефон, почту и т.д.), провоцировать действия, которые пользователи не планировали делать и все в таком духе – здесь можно бить в колокола и срочно удалять такие системы увеличения продаж с сайта. В противном случае слетите в органике по всем направлениям.

  3. Что делать, если опасаетесь за судьбу своего сайта?

    У вас на сайте стоит код стороннего сервиса, и вы не уверены, что это не приведет к последствиям? Яндекс рекомендует смотреть, делает ли сервис обращение к социальным сетям во время работы или нет.

    Как проверить? Заходите на сайт, кликаете правой кнопкой мыши, и из выпавшего списка выбираете «исследовать элемент» (Firebug). В открывшимся окне выбираете вкладку «сети» (network) и в формирующемся списке окна проверяем, чтобы не было обращения к соцсетям:

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

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

Будьте внимательнее к своему бизнесу. Повышайте конверсию честными способами, работайте комплексно над продвижением сайта, уделяйте должное внимание юзабилити и будет вам счастье.

Атака «кликджекинг» (англ. Clickjacking) позволяет хакеру выполнить клик на сайте-жертве от имени посетителя.

В русском языке встречается дословный перевод термина clickjacking: «угон клика». Так же применительно к clickjacking-атаке можно встретить термины «перекрытие iframe» и «подмена пользовательского интерфейса».

Кликджекингу подверглись в своё время Twitter, Facebook , PayPal, YouTube и многие другие сайты. Сейчас, конечно, они уже защищены.

Демо

Вот пример вредоносной страницы (для наглядности iframe – полупрозрачный):

<style> iframe { /* iframe с сайта-жертвы */ width: 400px; height: 100px; position: absolute; top:0; left:-20px; opacity: 0.5; /* в реальности opacity:0 */ z-index: 1; } </style> <div>Нажмите, чтобы разбогатеть сейчас:</div> <!— URL в реальности — с другого домена (атакуемого сайта) —> <iframe src=»facebook.html»></iframe> <button>Жми тут!</button> <div>..И всё получится (хе-хе, у меня, злого хакера, получится)!</div>

В действии:

Результат facebook.html index.html <!DOCTYPE HTML> <html> <body style=»margin:10px;padding:10px»> <input type=»button» onclick=»alert(‘Нажата кнопка Like с другого домена!’)» value=»I LIKE IT !»> </body> </html> <!doctype html> <html> <head> <meta charset=»UTF-8″> </head> <body> <style> iframe { /* iframe с сайта-жертвы */ width: 400px; height: 100px; position: absolute; top: 0; left: -20px; opacity: 0.5; z-index: 1; } </style> <div>Нажмите, чтобы разбогатеть сейчас:</div> <!— URL, в реальности — с другого домена (атакуемого сайта) —> <iframe src=»facebook.html»></iframe> <button>Жми тут!</button> <div>..И всё получится (хе-хе, у меня, злого хакера, получится)!</div> </body> </html>

Так как <iframe src=»facebook.html»> полупрозрачный, то в примере выше легко видеть, как он перекрывает кнопку. При клике на «Жми тут» на самом деле происходит клик на <iframe> (на «Like»).

В итоге, если посетитель авторизован на facebook (а в большинстве случаев так и есть), то facebook.com получает щелчок от имени посетителя.

На Twitter это была бы кнопка «Follow».

Тот же самый пример, но ближе к реальности, с opacity:0 для <iframe>. Вообще незаметно, что на самом деле посетитель кликает на <iframe>:

Результат facebook.html index.html <!DOCTYPE HTML> <html> <body style=»margin:10px;padding:10px»> <input type=»button» onclick=»alert(‘Нажата кнопка Like с другого домена!’)» value=»I LIKE IT !»> </body> </html> <!doctype html> <html> <head> <meta charset=»UTF-8″> </head> <body> <style> iframe { /* iframe с сайта-жертвы */ width: 400px; height: 100px; position: absolute; top: 0; left: -20px; opacity: 0; z-index: 1; } </style> <div>Нажмите, чтобы разбогатеть сейчас:</div> <!— URL, в реальности — с другого домена (атакуемого сайта) —> <iframe src=»facebook.html»></iframe> <button>Жми тут!</button> <div>..И всё получится (хе-хе, у меня, злого хакера, получится)!</div> </body> </html>

Итак, все, что нужно для проведения атаки – это правильно расположить iframe на вредоносной странице, так чтобы кнопка с Facebook оказалась над «Жми тут!». В большинстве случаев это возможно и делается обычным CSS-позиционированием.

С клавиатурой так не сделаешь

Атака называется «Clickjacking», то есть «угон клика», так как события клавиатуры «угнать» гораздо труднее. Посетителя можно заставить сфокусироваться на <input> прозрачного <iframe> с сайтом-жертвой, но этот <input> невидим, а значит текст в нём также будет невидимым. Посетитель начнёт печатать, но, не увидев текст, прекратит свои действия.

Плохая защита

Самый старый метод защиты – это код JavaScript, не позволяющий отобразить веб-страницу внутри фрейма («framebusting», также его называют «framekilling» и «framebreaking»).

Примерно такой:

if (top != window) { top.location = window.location; }

То есть, если окно обнаруживает, что оно загружено во фрейме, то оно автоматически делает себя верхним.

Увы, в настоящий момент это уже не является сколько-нибудь надежной защитой. Есть несколько способов обхода framebusting. Давайте рассмотрим некоторые из них.

Блокировка top-навигации.

Можно заблокировать переход, инициированный сменой top.location, в событии onbeforeunload.

Обработчик этого события ставится на внешней (хакерской) странице и, при попытке iframe поменять top.location, спросит посетителя, хочет он покинуть данную страницу. В большинстве браузеров хакер может спросить посетителя, используя своё сообщение.

window.onbeforeunload = function() { window.onbeforeunload = null; return «Хотите уйти с этой страницы, не узнав все её тайны (хе-хе)?»; }

Так что, скорее всего, посетитель ответит на такой странный вопрос отрицательно (он же не знает про ифрейм, видит только страницу, причины для ухода нет). А значит, ожидаемая смена top.location не произойдёт!

Пример в действии:

Результат iframe.html index.html <!doctype html> <html> <head> <meta charset=»UTF-8″> </head> <body> <div>Меняет top.location на javascript.ru</div> <script> top.location = ‘http://javascript.ru’; </script> </body> </html> <!doctype html> <html> <head> <meta charset=»UTF-8″> <style> iframe { /* iframe с сайта-жертвы */ width: 400px; height: 100px; position: absolute; top: 0; left: -20px; opacity: 0; z-index: 1; } </style> <script> function attack() { window.onbeforeunload = function() { window.onbeforeunload = null; return «Хотите уйти с этой страницы, не узнав все её тайны (хе-хе)?»; }; document.body.insertAdjacentHTML(‘beforeend’, ‘<iframe src=»iframe.html»>’); } </script> </head> <body> <p>При нажатии на кнопку посетитель получит «странный» вопрос о том, не хочет ли уйти со страницы.</p> <p>Наверно, он ответит «хочу остаться» и защита ифрейма будет провалена.</p> <button onclick=»attack()»>Подключить «защищённый» iframe</button> </body> </html>

Атрибут sandbox

Современные браузеры поддерживают атрибут sandbox

Он позволяет разрешить во фрейме скрипты allow-scripts и формы allow-forms, но запретить top-навигацию (не указать allow-top-navigation).

«Защищённый» <iframe> хакер может подключить, к примеру, так:

<iframe sandbox=»allow-scripts allow-forms» src=»facebook.html»></iframe>

Есть и другие приёмы для обхода этой простейшей защиты.

Firefox и старый IE могут активировать designMode на исходной странице, это также предотвращает framebusting, у IE есть нестандартный атрибут security для ифреймов, который можно использовать с той же целью.

Как мы видим, эта защита не только не выдерживает реальной атаки, но и может скомпрометировать сайт (программист-то думает, что защитил его).

Показ с отключённым функционалом

Заголовок X-Frame-Options имеет неприятный побочный эффект. Иногда поисковики, анонимайзеры или другие сайты хотели бы отобразить страницу в iframe, по вполне «легальным» причинам, но не могут.

Хорошо бы показывать их посетителям не пустой iframe, а нечто, что может быть более интересно.

Например, можно изначально «накрывать» документ div с height:100%;width:100%, который будет перехватывать все клики. И поставить на нём ссылку, ведующую на страницу в новом окне.

<style> #iframe-protector { height: 100%; width: 100%; position: absolute; left: 0; top: 0; z-index: 99999999; } </style> <div id=»iframe-protector»> <a href=»/» target=»_blank»>Перейти на сайт</a> </div> <script> if (top.document.domain == document.domain) { убрать iframe — protector } </script>

Если страница – не во фрейме или домен совпадает, то посетитель не увидит его.

Атаку «Clickjacking» легко осуществить, если на сайте есть действие, активируемое с помощью одного клика.

Злоумышленник может осуществить атаку целенаправленно на посетителей ресурса – опубликовав ссылку на форуме, или «счастливой рассылкой». Существует масса вариантов.

С первого взгляда, она «неглубокая»: всё, что можно сделать – это один клик. С другой стороны, если хакер знает, что после клика появляется какой-то другой управляющий элемент, то он, хитрыми сообщениями, может заставить посетителя кликнуть и по нему. А это уже не один, а два клика.

Атака особенно опасна, поскольку, проектируя интерфейс сайта, обычно никто и не задумывается о том, что клик от имени юзера может сделать хакер. Точки уязвимости могут быть в совершенно непредсказуемых местах.

  • Рекомендуется использовать X-Frame-Options на страницах, заведомо не предназначеных для запуска во фрейме и на важнейших страницах (финансовые транзакции).
  • Используйте перекрывающий <div>, если это допустимо вашим проектом и вы хотите разрешить безопасный показ документа во фреймах с любых доменов.

Примеры кликджекинга

Эта обманная технология эффективно используется в целях деанонимизации посетителей сайта. Наиболее часто к ней прибегают для идентификации ID в социальных сетях («ВКонтакте», Facebook, Twitter и др.). Происходит это следующим образом:

  1. Злоумышленник скрывает в прозрачном iFrame кнопку из социальной сети («Мне нравится», Follow и т. п.). Невидимый глазу iFrame размещается над элементом страницы, на который пользователь должен нажать. Типовой пример такого элемента — кнопки воспроизведения видео, которые обычно располагаются в нижнем левом углу либо в центре окна плеера. Также распространен вариант, при котором iFrame перемещается вслед за курсором мыши.
  2. Посетитель страницы жмет на скрытую кнопку — допустим, это «лайк» или вступление в группу во «ВКонтакте».
  3. Злоумышленник таким образом получает информацию о профиле пользователя в соцсети и, как правило, прямой доступ к нему через личные сообщения или по контактным данным, если такие указаны на странице.

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

  • предоставляет информацию, которую пользователь не сообщает самостоятельно;
  • производит идентификацию профиля в соцсети;
  • осуществляет звонки без явного запроса номера телефона.

Все эти действия могут повлечь за собой санкции Яндекса за применение кликджекинга.

Что нужно знать о влиянии кликджекинга на ранжирование?

Для многих веб-мастеров и владельцев сайтов внедрение нового алгоритма стало неожиданностью. О работе кликджекинг-фильтра они узнали уже после того, как их сайты резко потеряли по 20–30 позиций в выдаче. Причина пессимизации прояснилась только после обращения в службу техподдержки ПС.

Как сообщает Яндекс, алгоритм работает только по факту реального применения кликджекинга. То есть если такой код имеется на сайте, но не активен, то фильтр на него не среагирует.

Также стоит отметить, что ограничения вводятся на основании анализа данных за краткосрочный период. Если кликджекинг использовался, например, несколько недель назад, это никак не отразится на позициях сайта в текущий момент.

Санкции распространяются только на сайты, на которых фильтр обнаружил активный код кликджекинга. При этом ресурсы, предлагающие обманные сервисы, под действие алгоритма не подпадают. К слову, за январь 2016 года Яндекс обнаружил более 15 000 сайтов, использующих эту технологию, и около 50 сервисов, предоставляющих ее. В их числе vk-tracker.ru, soceffect.ru, soctracker.com, soctracker.ru, soctraffic.ru, soc-spy.ru и др.

При обнаружении на сайте технологии кликджекинга позиции по каждому из запросов стремительно упадут, а на их восстановление уйдет около двух недель. При этом поисковая система не гарантирует их 100%-го возвращения на прежний уровень.

Для убедительности покажем пару наглядных примеров из реальной практики.

Пример 1. Фильтр Яндекса среагировал на действие сервиса CoMagic. Позиции упали, на их восстановление ушло несколько дней. С учетом того, что эти произошло в канун Дня влюбленных и незадолго до 23 февраля, Вы можете себе представить, сколько потенциальных переходов на сайт было упущено.

Пример 2. Применение санкций спровоцировал сервис, предложенный ресурсом http://admeo.ru/. В среднем позиции упали на 18,94, а после снятия фильтра возросли лишь на 17,88 пункта. Отрицательная разница — 1,06. «Мелочи», — скажете Вы? Нет. Это упущенная выгода.

Как проверить сайт на наличие кликджекинга?

Узнать, работает ли на сайте кликджекинг, можно в службе техподдержки внешнего сервиса. Тем не менее, как показывает практика, не все сервисы признают факт использования данной технологии.

Проверку сайта можно осуществить и самостоятельно. Например, современные браузеры содержат специальные инструменты для веб-разработчиков, позволяющие узнать, обращается ли сервис к соцсетям, работая с сайтом.

Отчет плагина Firebug об обращении к соцсетям

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

Узнать о применении технологии кликджекинга можно в сервисе Яндекс.Вебмастер. Там в разделе «Нарушения» должно появиться специальное предупреждение.

Кликджекинг-фильтр будет безопасен для позиций сайта, когда на нем останутся только «чистые» сервисы, позволяющие определить контактные данные пользователя исключительно с его согласия (наиболее известный пример — форма обратной связи). В таком случае будет достигнута главная цель внедрения алгоритма — ограждение пользователя от навязчивой рекламы и возможных вредных действий со стороны злоумышленников.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *