Удаление вирусов WordPress: пошаговое руководство 2026 с 7 практическими советами
Почему ваш сайт может быть заражён
Вирусы в WordPress появляются из‑за уязвимостей плагинов, тем, слабых паролей или неправильных прав доступа. Даже если вы используете только проверенные решения, автоматические сканеры могут обнаружить скрытый backdoor в ядре.
Поиск вредоносного кода
1. Сканирование файлов через WP‑CLI
Самый быстрый способ – воспользоваться Redis WordPress и WP‑CLI. Команда ниже покажет файлы, содержащие подозрительные функции:
wp eval 'foreach (scandir(ABSPATH) as $file) {
if (is_file(ABSPATH.$file) && preg_match("/eval|base64_decode|shell_exec/", file_get_contents(ABSPATH.$file))) {
echo $file."n";
}
}' 2. Проверка .htaccess и wp-config.php
Эти файлы часто используют для скрытия редиректов. Откройте их в редакторе и ищите строки вроде RewriteEngine On с незнакомыми доменами или eval(base64_decode(...)).
// Пример поиска в wp-config.php
$path = ABSPATH . 'wp-config.php';
$content = file_get_contents($path);
if (preg_match('/evals*(s*base64_decode/', $content)) {
echo "Подозрительный код найден в wp-config.php";
} 3. Использование онлайн‑сканеров
Сервисы вроде Sucuri SiteCheck позволяют быстро проверить сайт на наличие известных сигнатур. Запомните, что сканер не заменит локальный аудит, но может подсказать, где искать.
Очистка заражённых файлов
1. Резервное копирование
Перед любой правкой создайте полную копию базы и файлов. Это спасёт от потери данных, если очистка пойдёт не так.
2. Замена ядра и плагинов
Самый надёжный способ – переустановить WordPress и все плагины из официального репозитория:
wp core download --force
wp plugin delete --all
wp plugin install --activate woocommerce contact-form-7 3. Ручная правка файлов
Если сканер указал конкретный файл, откройте его и удалите подозрительный код. Не оставляйте «закомментированные» части – они могут быть активированы позже.
Восстановление после взлома
1. Сброс паролей и ключей
Смените пароли всех пользователей, а также AUTH_KEY, SECURE_AUTH_KEY и остальные константы в wp-config.php. Для генерации новых ключей используйте WordPress.org Salt Generator.
2. Перепроверка прав доступа
Файлы должны иметь права 644, а директории – 755. Скрипты, которым нужен exec, лучше перенести в отдельную папку с ограниченными правами.
3. Очистка базы данных
Выполните запрос, который удалит вредоносные записи из таблиц wp_options и wp_posts:
DELETE FROM wp_options WHERE option_name LIKE '%eval%';
DELETE FROM wp_posts WHERE post_content LIKE '%base64_decode%'; Профилактика будущих атак
1. Настройка security headers
Для защиты от XSS и clickjacking добавьте в .htaccess или в плагин security-headers следующие директивы: Content-Security-Policy, X-Frame-Options, Referrer-Policy. Подробнее – Security headers WordPress.
2. Использование CDN и WAF
CloudFlare предоставляет бесплатный WAF, который блокирует известные вредоносные запросы. Настройте его в несколько шагов: CloudFlare для WordPress.
3. Регулярные обновления и автосканирование
Включите автоматическое обновление ядра, тем и плагинов. Добавьте cron‑задачу, которая каждый день будет запускать WP‑CLI сканер из первого пункта.
4. Мониторинг производительности
После очистки сайта проверьте Core Web Vitals, чтобы убедиться, что оптимизация не пострадала. Руководство Оптимизация Core Web Vitals поможет быстро исправить отклонения.
Итоги
Удаление вирусов WordPress – это последовательный процесс: обнаружение, очистка, восстановление и профилактика. Следуя 7‑шаговой инструкции, вы не только избавитесь от текущих угроз, но и укрепите сайт против будущих атак.
❓ Часто задаваемые вопросы
Как быстро обнаружить вредоносный код в WordPress?
Самый быстрый способ – запустить WP‑CLI сканирование с поиском функций eval, base64_decode и shell_exec. Также проверяйте .htaccess и wp-config.php вручную.
Нужен ли полный бэкап перед очисткой?
Обязательно. Создайте резервную копию файлов и базы данных, чтобы иметь возможность откатиться в случае ошибочной правки.
Какие права доступа к файлам считаются безопасными?
Файлы должны иметь права 644, директории – 755. Скрипты, требующие выполнения, лучше изолировать в отдельную папку с ограниченными правами.
Можно ли полностью автоматизировать процесс удаления malware?
Да, комбинация WP‑CLI, cron‑задач и плагинов для мониторинга позволяет автоматизировать сканирование и удаление известных сигнатур, но ручная проверка всё равно рекомендуется.