
Взломали сайт на WordPress: как понять, что вас взломали, и что делать сразу
Обычно всё начинается со звонка клиента: «Зашёл на ваш сайт и оказался на казино». Вы открываете сайт на компьютере, и всё в порядке. Не в порядке. Вредоносный код на взломанных сайтах WordPress часто настроен так, чтобы не показываться вошедшему администратору и тому, кто набрал адрес напрямую, и перекидывать только людей из поиска и с телефона.
Ниже порядок действий на первый час, последовательность чистки, которая действительно работает, и честный ответ на вопрос, когда латать сайт уже бессмысленно.
Сайт не работает или тормозит?
WordPress и самописные сайты. Большинство поломок решаю в день обращения.
Признаки: как понять, что сайт взломан
Достаточно одного, чтобы действовать сразу:
- Переадресация на чужой сайт, особенно с телефона или после клика в результатах Google. Проверьте с телефона через мобильный интернет, а не с компьютера, где вы вошли в админку.
- Предупреждение от Google. Под результатом поиска появляется пометка, что сайт может быть взломан, или Chrome показывает красный экран с предупреждением.
- Страницы, которых вы не создавали. Наберите в поиске
site:вашдомен.sk. Если видите сотни страниц на японском, с лекарствами или казино, это так называемый японский спам, один из самых распространённых взломов. - Незнакомый администратор в списке пользователей WordPress.
- Хостинг заблокировал аккаунт или пишет, что с вашего сервера уходит спам.
- Search Console, раздел «Безопасность и меры, принятые вручную»: если там есть сообщение о проблеме безопасности, Google взлом уже подтвердил.
Первый час: что делать и чего не делать
Делайте:
- Копию текущего состояния файлов и базы данных, до любых изменений. Это улика, по которой ищут, откуда пришёл взломщик. Удалив всё, вы уничтожите след.
- Смените все пароли: хостинг, FTP или SFTP, база данных, все администраторы WordPress и почта, на которую приходит восстановление пароля.
- Удалите незнакомых администраторов и проверьте права остальных учётных записей.
- Если сайт отправляет посетителей на мошеннические страницы, закройте его страницей техобслуживания. Вы защищаете клиентов и имя фирмы. День без сайта дешевле недели, когда вы отправляете людей к мошенникам.
- Напишите хостингу. У них обычно есть журналы доступа, по которым видно, когда и откуда был взлом.
- Если на сайте формы или магазин, выясните, мог ли взломщик добраться до персональных данных. При риске для людей действует обязанность сообщить в течение 72 часов, подробнее в статье GDPR для маленькой фирмы.
Не делайте:
- Не восстанавливайте вслепую последнюю резервную копию в надежде, что вопрос закрыт. В копии уже может сидеть лазейка, а дыра, через которую зашли, остаётся открытой.
- Не ставьте три плагина безопасности сразу. Добавите чужой код и чувство защищённости, дыру не закроете.
- Не ждите, что само пройдёт. Google за несколько дней уберёт взломанный сайт из выдачи и перестанет показывать на него рекламу.
Как взломщик попал внутрь
На WordPress это почти всегда одни и те же пути:
- Необновлённый плагин или тема с известной уязвимостью. Автор выпускает исправление, уязвимость становится публичной, и автоматические скрипты в ту же неделю обходят интернет в поисках сайтов, которые не обновились.
- Пиратская «nulled» тема или плагин. Платная тема бесплатно с файлообменника уже содержит лазейку внутри. Тут не поможет даже обновление.
- Заброшенный плагин, который автор перестал развивать. Уязвимость в нём больше никто не исправит.
- Слабый или повторяющийся пароль без двухфакторной проверки.
- Другой сайт на том же хостинговом аккаунте, например забытая тестовая копия
old.вашдомен.sk. Взломщик заходит через неё и получает доступ ко всему рядом.
Отсюда главное правило: чистка без поиска дыры бессмысленна. Сайт останется чистым до следующего прохода робота.
Чистка в правильном порядке
Порядок важен, потому что вредоносный код восстанавливается из мест, о которых при быстрой чистке забывают:
- Ядро WordPress сверьте с официальной версией. Команда
wp core verify-checksumsчерез WP-CLI покажет каждый изменённый файл. Надёжнее всего переустановить ядро целиком. - Плагины и темы замените чистыми копиями из официальных источников. Неиспользуемые удалите, пиратские без обсуждения.
- Папка
wp-content/uploads: в ней не должно быть ни одного PHP-файла. Если он там есть, он чужой. - Файлы
wp-config.php,.htaccessи папкаmu-plugins: сюда переадресации и лазейки кладут охотнее всего. - База данных: таблица настроек (адрес сайта, список активных плагинов), пользователи, вставленные скрипты в тексте записей и запланированные задачи.
- Новые ключи безопасности в
wp-config.php. Они разлогинят всех, в том числе взломщика с украденной сессией. - Обновления, двухфакторная проверка и ограничение попыток входа.
- Search Console: в разделе «Безопасность и меры, принятые вручную» запросите повторную проверку. Страницы, созданные взломщиком, должны отдавать 404 или 410, и отправьте sitemap заново.
Как распознать другие поломки, не связанные со взломом, разбираю в статье ремонт сайта на WordPress.
Хотите узнать, что тормозит ваш сайт?
Пройду по нему так, как его видит Google, и пришлю конкретный список за 3 рабочих дня.
Во что обходится, если ничего не делать
Взлом не техническая мелочь, которая подождёт до следующего месяца:
- Трафик из Google падает, пока под результатом висит предупреждение. А снимут его только после повторной проверки.
- Реклама останавливается. Google Ads не показывает объявления, ведущие на взломанные сайты, и вы платите за кампанию, которая не крутится.
- Письма уходят в спам. Если с сервера рассылался спам, домен попадает в чёрные списки, а вместе с ним ваши счета и предложения.
- Доверие. Клиент, которого вы отправили на мошеннический сайт, не вернётся.
Когда уже не чистить, а строить сайт заново
Скажу прямо: WordPress с плагинами от двадцати разных авторов требует постоянного обслуживания, и взлом это счёт за пропущенное обслуживание. Разовый взлом сайта, за которым следят, чистить стоит. Латать перестаёт иметь смысл, когда:
- это второй взлом за год;
- сайт стоит на пиратской теме или на конструкторе страниц с тридцатью плагинами, половину из которых уже никто не развивает;
- плагины требуют старую версию PHP, и при обновлении сайт разваливается;
- никто не будет обновлять сайт каждый месяц, а значит, через год всё повторится.
Тогда дешевле построить сайт заново на современном стеке. Например, сайт, который заранее собирается через Next.js, не имеет страницы входа на публичном адресе, не имеет базы данных, в которую можно что-то записать, и не имеет плагинов от чужих авторов. Невзламываемых сайтов не бывает, но поверхность атаки в разы меньше, чем у обычного WordPress. Так работает и этот сайт: без базы данных и без админки на публичном адресе, сервер отвечает примерно за 0,09 секунды.
Сравнение подходов в статье WordPress или самописный сайт, реальные цены нового сайта в статье сколько стоит сайт в Словакии.
Как не допустить взлома, пока сайт работает
Если заменять сайт пока не хотите, минимум понятен: обновления раз в месяц, резервные копии вне сервера с проверенным восстановлением, двухфакторная проверка для всех администраторов и удаление всего неиспользуемого. Что именно входит в обслуживание и сколько оно стоит, разбираю в статье поддержка и доработка сайта на WordPress.
Если нужна помощь
Чищу взломанные сайты, включая поиск и закрытие дыры, через которую зашёл взломщик, и оформляю повторную проверку в Search Console. Часовая ставка 35€, диагностику обычно делаю в день обращения, а оценку называю до начала работы. Хостинг за вас не администрирую и юридических консультаций по GDPR не даю. Моя часть это сайт, его чистка и защита.
Новые сайты делаю на современном стеке, без плагинов и без публичной админки: создание сайтов в Братиславе. Живу в Словакии больше десяти лет, запустил 12+ сайтов для словацких компаний, работаю как словацкое s.r.o. и выставляю фактуру, которую можно провести в расходы. Общаемся по-русски.
Подробности смотрите на странице услуги «Исправление ошибок на сайте и в WordPress». Если сначала хотите понять, что с сайтом: бесплатный аудит, результат за 3 рабочих дня.
Нужен новый сайт?
Корпоративный сайт, интернет-магазин или система бронирования. Большинство проектов сдаю за 15 рабочих дней.
