Как выглядит проблема: четыре типичных сценария
Вредоносный редирект редко виден владельцу. Код специально написан так, чтобы срабатывать не для всех: владелец открывает сайт со своего компьютера и видит нормальные страницы, а часть посетителей в это время перебрасывает на чужой адрес.
С телефона открывается другой сайт, с компьютера - всё нормально
Самый частый сценарий. Посетитель заходит со смартфона, и вместо вашего сайта открывается казино, букмекер или страница с "призами". Код проверяет устройство и срабатывает только на мобильных - именно поэтому владелец за рабочим компьютером может неделями ничего не замечать.
Перекидывает только при переходе из Яндекса или рекламы
Сайт открывается нормально по прямой ссылке, но при переходе из поиска или рекламного объявления посетителя перенаправляет на чужую страницу. Код смотрит, откуда пришёл человек, и уводит самый ценный трафик - тот, за который вы платите. Первый заметный симптом часто не редирект, а падение заявок.
Перенаправляет через раз или только новых посетителей
Редирект срабатывает один раз, а при повторном заходе сайт открывается нормально. Так код прячется: проблему трудно воспроизвести, и жалобу клиента легко списать на "у вас интернет глючит". Если хотя бы два человека независимо сказали, что их перекинуло, - это не случайность.
Сайт открывается, но всплывает чужая реклама
Страницы на месте, но поверх них появляются всплывающие окна, баннеры или сами открываются новые вкладки с рекламой, которой вы не ставили. Это тот же класс проблемы: в шаблон сайта вставлен чужой скрипт, который зарабатывает на вашем трафике.
Коротко
Если хотя бы часть посетителей видит вместо вашего сайта чужой - считайте это взломом, пока не доказано обратное. Само это не проходит: код срабатывает выборочно и остаётся на сайте, пока его не найдут и не удалят.
Почему это происходит
Чужой код попадает на сайт через уязвимый плагин или тему, давно не обновлявшуюся CMS, украденные пароли от админки, FTP или хостинга, иногда - через заражённый компьютер, на котором были сохранены доступы. Прячется он в шаблонах, JS-файлах, файле .htaccess или в базе данных - поэтому "посмотреть глазами" его обычно недостаточно.
| Симптом | Где обычно сидит код | Почему так сделано |
|---|---|---|
| Редирект только с телефонов | JS-вставка или серверное правило с проверкой устройства | Владелец смотрит сайт с компьютера и ничего не замечает |
| Только из поиска или рекламы | Правило по источнику перехода в .htaccess или шаблоне | Уводится самый дорогой трафик, а прямые заходы чистые |
| Через раз, только новым посетителям | Метка в cookie после первого показа | Проблему труднее воспроизвести и поймать |
| Чужие всплывающие окна и вкладки | Внешний скрипт, вставленный в шаблон страниц | Заработок на показах рекламы за счёт вашего трафика |
Что проверить самому за 15 минут
Эти шаги безопасны: они не меняют файлы и ничего не ломают. Задача - подтвердить проблему, понять, кого именно перекидывает, и собрать факты для диагностики.
- Откройте сайт со смартфона через мобильный интернет (не Wi-Fi) в режиме инкогнито: сначала по прямому адресу, потом через поиск Яндекса.
- С компьютера в режиме инкогнито найдите сайт в Яндексе и перейдите по ссылке из выдачи - редирект часто срабатывает только для переходов из поиска.
- Зайдите в Яндекс Вебмастер, раздел "Безопасность и нарушения": там видно, нашёл ли Яндекс на сайте вредоносный код.
- Проверьте почту, привязанную к хостингу и домену: письма о вредоносной активности, жалобах или ограничениях.
- Запишите, что менялось на сайте в последние недели: новый плагин, правки от фрилансера, перенос, новые доступы.
- Зафиксируйте условия, при которых перекидывает: устройство, источник перехода и чужой адрес из адресной строки.
Чего не делать, пока нет свежей копии
Желание "быстро всё почистить" понятно, но именно на этом шаге владельцы чаще всего усложняют лечение: удаляют следы, по которым ищут точку входа, или ломают рабочие файлы.
Важно
Перед любыми правками сделайте полную копию файлов и базы данных в текущем - заражённом - виде. Это не только страховка: по заражённым файлам специалист определяет, как код попал на сайт. Стёрли следы - диагностика займёт заметно больше времени.
- не удаляйте подозрительные файлы наугад: часть может оказаться служебными, а следы взлома пропадут;
- не восстанавливайте старый бэкап поверх сайта: уязвимость, через которую вошли, почти наверняка есть и в бэкапе - редирект вернётся;
- не запускайте "лечащие" плагины вслепую: они убирают симптом, но не точку входа, и могут повредить рабочие файлы;
- не меняйте пароли по одному "для галочки": доступы нужно менять все сразу и после очистки, иначе злоумышленник вернётся по оставшимся;
- не скрывайте проблему от хостинга: у поддержки есть логи, которых нет у вас, и по ним часто видно источник.
Почему просто убрать редирект недостаточно
Сам редирект - это обычно одна вставка в файле или базе, и удалить её несложно. Но она появилась не сама. Где-то осталась точка входа: уязвимость или украденный доступ. Рядом часто лежат "закладки" - лишние файлы, посторонние администраторы в CMS, задачи в планировщике, которые восстанавливают вредоносный код после удаления.
Поэтому нормальное лечение - это не "найти и стереть строчку", а последовательность: найти весь чужой код, понять, как он попал на сайт, закрыть вход, сменить доступы и убедиться, что заражение не возвращается. Так устроена услуга удаления вируса с сайта: если убрать только видимую часть, через несколько дней всё повторяется - уже с кодом, который прячется лучше.
Что будет с Яндексом, рекламой и позициями
Если редирект не лечить, последствия наступают по расписанию. Яндекс и Google помечают сайт предупреждением "сайт может угрожать безопасности" - переходы из поиска почти останавливаются. Рекламные системы могут отклонить объявления, ведущие на заражённый домен. Хостинг вправе ограничить сайт по жалобам. Позиции проседают и возвращаются не мгновенно.
Хорошая новость: метка небезопасности снимается. После очистки сайт отправляют на перепроверку в Яндекс Вебмастере и Google Search Console, и предупреждение убирают. Чем быстрее началось лечение, тем короче простой. Бывает и обратная ситуация: после неудачной чужой вставки сайт просто ломается - открывается белым экраном или отдаёт ошибку 500.
Что отправить специалисту
Не нужно разбираться в коде, чтобы описать проблему. Нужны факты: кого перекидывает, куда и при каких условиях. Чем точнее описание, тем быстрее диагностика.
- адрес сайта;
- чужой адрес, куда перекидывает: скопируйте его из адресной строки;
- условия: с телефона или с компьютера, по прямой ссылке или из поиска, каждый раз или через раз;
- скриншот или запись экрана с телефона, если получится;
- что менялось на сайте в последние недели;
- CMS или стек, если знаете: WordPress, Bitrix, самописный сайт;
- какие есть доступы (хостинг, админка, FTP, домен) и есть ли бэкапы.
Мини-шаблон сообщения
"Сайт example.ru при переходе из Яндекса со смартфона перекидывает на чужой адрес (такой-то). С компьютера по прямой ссылке всё нормально. Заметили вчера вечером. Неделю назад обновляли плагин. CMS - WordPress. Доступ к хостингу и админке есть, бэкап месячной давности."
Если сайт прямо сейчас перекидывает посетителей
Начнём с диагностики: зафиксируем заражённое состояние, найдём вредоносный код и точку входа, покажем план очистки. Диагностика - от 7 500 ₽, по итогам честно скажем, насколько всё серьёзно.
Что сделать после очистки
Когда редирект убран, важно закрыть вопрос до конца - иначе через пару недель всё вернётся, и лечить придётся заново.
- отправить сайт на перепроверку в Яндекс Вебмастере и Google Search Console, если была метка небезопасности;
- сменить все пароли: хостинг, FTP/SSH, админка CMS, база данных, почта, к которой привязан домен;
- обновить CMS, темы и плагины, удалить неиспользуемые;
- проверить список администраторов и убрать лишние учётки;
- настроить регулярные бэкапы и хранить копию не только на хостинге;
- понаблюдать за сайтом 2-4 недели: повторные вставки часто всплывают не сразу.
Если коротко
Редирект на чужой сайт - почти всегда взлом. Подтвердите проблему с телефона и из поиска, запишите условия и чужой адрес, сделайте копию заражённого состояния и не удаляйте ничего наугад. Лечение - это не стереть строчку, а найти точку входа, закрыть её и сменить доступы. Тогда редирект не вернётся.