Вредоносный код на сайте: как понять, что вас заразили
«Сайт заражён» означает, что на нём появился чужой код: в файлах, в базе или в шаблоне. Работает он тихо и обычно не для вас, а для посетителей и поисковых роботов — показывает им то, чего вы не публиковали.
Аналогия для владельца сайта
Как если бы в подсобке магазина поселился посторонний. Он не ломает витрину — ему невыгодно, чтобы вы заметили. Он тихо пользуется вашим адресом и делает дубликат ключа, чтобы вернуться после смены замка. Поэтому чистка без поиска входа обычно заканчивается повторным заражением.
Признаки, которые видно снаружи
| Что вы замечаете | Что обычно за этим стоит |
|---|---|
| Переход из поиска уводит на чужой сайт, а прямой заход — нет | Условный редирект по источнику перехода |
| В выдаче у ваших страниц чужие заголовки — аптеки, казино | Клоакинг: роботу отдаётся не та страница, что человеку |
| Резкое падение трафика без изменения позиций | Предупреждение браузера «сайт может нанести вред» на входе |
| Письма с домена массово уходят в спам | Домен попал в почтовые чёрные списки из-за рассылки |
| Новые файлы и админы, которых вы не создавали | Бэкдор и учётка для повторного входа |
Поиск помечает такой сайт, снижает доверие к домену и выводит заражённые страницы из индекса; при спам-инъекциях возможны и ручные санкции. Возврат позиций занимает недели: сначала поиск и сервисы репутации должны подтвердить, что сайт чистый.
Как это выглядит в отчёте Security Shield
Если найден хотя бы один признак заражения, отчёт начинается не с оценки, а с вердикта «Заражён» — красный уровень светофора. Снаружи сканер видит обфусцированный JavaScript, скрипты майнинга, невидимые фреймы, перехват полей карты, скрытые спам-ссылки, признаки клоакинга и редиректов, а также домен в чёрных списках.
Часть заражения снаружи не видна принципиально: веб-шелл в файле, изменённые файлы ядра CMS, PHP-файл в каталоге загрузок, правила в .htaccess, код в базе, посторонний администратор. Это находит необязательный серверный агент — скрипт, который вы ставите на свой хостинг. Подробнее — в статье про Security Shield.
Удалить найденные файлы недостаточно: если точка входа осталась, код вернётся за часы. Ищите не только сам файл, но и то, через что он попал — устаревший плагин, украденный пароль FTP, чужой сайт на том же аккаунте хостинга.
Что делать по шагам
- Снимите копию «как есть». Файлы и база в текущем виде — это и улика, и страховка на случай неудачной чистки.
- Найдите изменённое. Отсортируйте файлы по дате изменения и сравните ядро CMS и плагины с официальными версиями.
- Восстановите чистые версии. Ядро и расширения переустановите поверх, шаблон и загрузки чистите точечно.
- Обновите CMS, тему и плагины, удалите неиспользуемые и выпавшие из официального каталога.
- Смените все пароли и ключи: админы, база, FTP и SSH, панель хостинга, почта. Проверьте администраторов и задачи планировщика.
- Запустите повторное сканирование — вердикт должен смениться, а находки с признаками заражения уйти.
- Подайте заявку на пересмотр в сервисы репутации и в панель вебмастера — метка не снимается сама.
Как не допустить повторно
Обновления и минимум плагинов дают больше, чем платный «антивирус для сайта». Права на файлы держите строгими, выполнение PHP в каталоге загрузок запретите, для админки включите двухфакторную защиту. После чистки проверьте страницы через SEO-аудит, а по публикациям — индексацию.