Сайт на WordPress взломали? 3 шага вернуть контроль за час (и не потерять данные)
Обнаружить, что ваш сайт на WordPress взломали — крайне неприятно. Еще вчера всё работало отлично, а сегодня Google пометил сайт как опасный, хостинг прислал уведомление о блокировке за рассылку спама, или при попытке зайти в админку вас редиректит на сомнительные ресурсы.
Главное сейчас — не паниковать. В панике владельцы сайтов часто начинают удалять всё подряд, окончательно ломая базу данных и файлы, после чего восстановить проект становится в разы сложнее.
В этой статье мы разберем пошаговый алгоритм, как локализовать угрозу, найти malware на WordPress, очистить файлы и вернуть сайт к жизни своими силами.
---
Как понять, что сайт действительно взломали: основные симптомы
Иногда взлом очевиден, но часто вредоносный код ведет себя скрытно, чтобы как можно дольше использовать ресурсы вашего сервера. Вот основные признаки того, что безопасность WordPress была нарушена:
- Редиректы на спам. Вы или ваши пользователи при переходе из поисковых систем (Google, Яндекс) попадаете на сайты с рекламой, казино или «взрослым» контентом. При этом при прямом вводе адреса сайт может открываться нормально.
- Красный экран в браузере. Google пометил сайт как опасный. Посетители видят предупреждение «Сайт впереди содержит вредоносное ПО» (Deceptive site ahead).
- Странный код в файлах. При просмотре файлов через FTP вы находите конструкции вида
eval(base64_decode(...))или огромные строки зашифрованного текста в самом начале файловindex.phpилиwp-config.php. - Новые администраторы. В панели управления WordPress (если в нее еще можно войти) появились пользователи с правами администратора, которых вы не создавали.
- Блокировка со стороны хостинга. Вы получили письмо от провайдера о том, что ваш аккаунт заблокирован из-за превышения нагрузки, рассылки спама или наличия фишинговых страниц.
Если вы столкнулись с одним из этих симптомов, пора действовать.
---
Шаг 1. Изоляция и подготовка (15 минут)
Прежде чем приступать к лечению, нужно зафиксировать текущее состояние сайта и закрыть злоумышленникам доступ к нему на время проведения работ.
1. Сделайте бэкап (даже если сайт заражен)
Скачайте полную резервную копию файлов сайта через панель хостинга или FTP, а также сделайте дамп базы данных через phpMyAdmin.
*Зачем делать бэкап зараженного сайта?* Если в процессе чистки вы случайно удалите важный системный файл или повредите базу данных, у вас будет точка отката. Без бэкапа есть риск потерять сайт навсегда.
2. Включите режим обслуживания (Maintenance Mode)
Чтобы пользователи не видели процесс чистки, а поисковые роботы не индексировали вредоносный код, закройте сайт. Проще всего сделать это, добавив в файл .htaccess в корне сайта следующие строки (замените 123.123.123.123 на ваш IP-адрес, чтобы вы могли заходить на сайт, а остальные видели заглушку):
`apache
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123$
RewriteCond %{REQUEST_URI} !/maintenance\.html$ [NC]
RewriteRule ^(.*)$ /maintenance.html [R=302,L]
`
Создайте простой файл maintenance.html в корневой папке с текстом «На сайте ведутся технические работы».
3. Смените ключи безопасности (соли) и пароли
Злоумышленники могли украсть ваши сессии. Чтобы мгновенно разлогинить всех пользователей (включая хакеров):
- Перейдите на генератор ключей WordPress:
https://api.wordpress.org/secret-key/1.1/salt/. - Скопируйте сгенерированный код.
- Откройте файл
wp-config.phpи замените старый блок константAUTH_KEY,SECURE_AUTH_KEYи т.д. на новый. - Смените пароли к FTP, панели хостинга и базе данных (не забудьте обновить пароль к БД в
wp-config.php).
---
Шаг 2. Поиск и удаление заражения (30 минут)
Теперь переходим к самой важной части — поиску malware на WordPress. Вредоносный код обычно прячется в нескольких типовых местах.
1. Проверка системных файлов и .htaccess
Хакеры часто модифицируют конфигурационные файлы.
- Файл
.htaccess: Откройте его. В нем не должно быть сторонних редиректов или правил, разрешающих исполнение PHP-файлов в системных папках. Оригинальный.htaccessдля WordPress обычно выглядит очень просто (стандартные правила для ЧПУ). Если там десятки строк непонятного кода — удалите их. - Файл
wp-config.php: Проверьте его начало. Там не должно быть никаких сторонних функцийinclude,requireили замаскированного кодаeval(base64_decode...).
2. Очистка папки wp-content/uploads
Папка uploads предназначена исключительно для картинок, документов и медиафайлов. В ней не должно быть ни одного PHP-файла!
- Подключитесь к сайту по FTP/SFTP или через файловый менеджер хостинга.
- Зайдите в
wp-content/uploadsи воспользуйтесь поиском по расширению.php. - Если вы нашли файлы вроде
wp-xml.php,uploader.php,index.php(внутри uploads) или любые другие файлы с расширением.php— смело удаляйте их. Это 100% шеллы (скрипты для удаленного управления вашим сайтом).
3. Проверка тем и плагинов
Часто взлом происходит через уязвимости в плагинах или темах (особенно если вы использовали «обнуленные» nulled-версии премиум-плагинов).
- Зайдите в папку
wp-content/pluginsиwp-content/themes. - Если вы видите папки плагинов, которые вы не устанавливали — удалите их.
- Самый надежный способ очистить плагины: запишите список установленных плагинов, удалите их папки полностью, а затем скачайте заново чистые версии из официального репозитория WordPress. *Никогда не перезаписывайте файлы поверх старых — хакерские файлы могут остаться нетронутыми.*
4. Проверка базы данных (таблица wp_options)
Иногда вредоносный код или спам-ссылки внедряются прямо в базу данных.
- Через phpMyAdmin откройте таблицу
wp_options(префиксwp_может отличаться). - Проверьте поля
siteurlиhome. Там должны быть указаны именно ваши адреса. Если там стоят чужие домены — исправьте их. - Проверьте опцию
active_plugins. Иногда хакеры прописывают туда скрытые плагины-невидимки.
5. Использование бесплатных сканеров
Если ручной поиск кажется вам слишком сложным, можно воспользоваться специализированными плагинами для сканирования. Установите и запустите один из них (после того, как вернете доступ к админке):
- Wordfence Security (бесплатная версия отлично находит измененные файлы ядра и сравнивает их с оригиналом).
- Sucuri Security.
*Если вы не уверены, стоит ли удалять тот или иной файл, или боитесь сломать код — лучше приостановите процесс и доверьте эту работу специалистам.*
---
Шаг 3. Закрытие уязвимостей и снятие санкций (15 минут)
Вычистить файлы — это только половина дела. Если не закрыть дыру, через которую зашли хакеры, сайт взломают снова в течение суток.
1. Обновление всего ПО
Уязвимости в старых версиях — главная причина взломов.
- Обновите WordPress до последней версии.
- Обновите все плагины и темы.
- Если плагин заброшен разработчиком и не обновлялся больше года — найдите ему безопасную альтернативу.
2. Отключение XML-RPC
Протокол xml-rpc.php часто используется для подбора паролей (brute force) и DDoS-атак. Если вы не используете мобильное приложение WordPress или интеграции вроде Jetpack, отключите его. Добавьте в .htaccess следующие строки:
`apache
<Files xml-rpc.php>
Order Deny,Allow
Deny from all
</Files>
`
3. Настройка двухфакторной аутентификации (2FA)
Установите плагин для двухфакторной авторизации (например, *Two Factor Authentication* или встроенный модуль в *Wordfence*). Даже если злоумышленники узнают ваш пароль администратора, они не смогут войти без одноразового кода из вашего телефона.
4. Запрос на снятие блокировки в Google
Если Google пометил ваш сайт как опасный:
- Зарегистрируйте сайт в Google Search Console (если еще не сделали этого).
- Перейдите в раздел «Проблемы безопасности» (Security & Manual Actions -> Security issues).
- Вы увидите список обнаруженных угроз. Нажмите кнопку «Запросить проверку» (Request Review).
- Напишите краткий отчет о проделанной работе (например: *«Сайт был взломан, мы удалили вредоносные скрипты в папке uploads, обновили все плагины и сменили пароли»*).
Обычно проверку проводят в течение 24–72 часов, после чего красный экран предупреждения исчезает.
---
Когда пора звать профи?
Описанные выше шаги помогают решить проблему в 80% случаев несложных взломов. Однако хакерские технологии развиваются, и иногда ручной очистки недостаточно. Вам стоит обратиться к специалистам по безопасности, если:
- Сайт взламывают повторно. Вы всё почистили, но через пару дней спам-редиректы вернулись. Это значит, что на сервере остался скрытый бэкдор (backdoor), который вы упустили, или уязвимость осталась открытой.
- Взлом затронул базу данных. Внедрения в сериализованные массивы базы данных крайне сложно вычистить вручную без повреждения структуры сайта.
- У вас нет времени или технических навыков. Ошибка в коде
.htaccessилиwp-config.phpможет привести к «белому экрану смерти» и длительному простою бизнеса.
*Важно понимать:* ни один специалист и ни один плагин не могут дать «100% гарантии защиты» на будущее, так как новые уязвимости (0-day) появляются регулярно. Но профессиональная настройка безопасности снижает риски взлома до минимума.
---
Нужна быстрая и надежная помощь?
Если ваш сайт на WordPress взломали, вы теряете клиентов и позиции в пои
Нет времени или не хотите лезть в код?
GuardLabs вычистит заражение, закроет дыры и поставит мониторинг, чтобы не повторилось. Первым клиентам — почти даром, собираем реальные кейсы (взамен честный отзыв). Бесплатный экспресс-аудит сайта → или Website Care $240/год.