Как защитить сайт на WordPress от взлома: пошаговая инструкция по безопасности

Почему безопасность WordPress — это не опция, а необходимость

Согласно отчету Sucuri за 2023 год, более 90% всех зараженных сайтов работают на WordPress. Это не значит, что платформа ненадежна — просто она самая популярная в мире (более 43% всех сайтов используют WordPress). Хакеры атакуют массово, и если ваш сайт не защищен, он становится легкой мишенью.

Чем грозит взлом?

  • Потеря данных: удаление или кража клиентской информации, заказов, базы email-рассылок.
  • Падение репутации: Google помечает зараженные сайты как «опасные», что снижает трафик на 95% (данные Moz).
  • Финансовые потери: средняя стоимость восстановления сайта после взлома — $2 500–$10 000 (исследование Ponemon Institute).
  • Штрафы: нарушение GDPR или закона о защите персональных данных может обойтись в до 4% годового оборота компании.

Хорошая новость: 80% взломов можно предотвратить базовыми мерами безопасности. В этой статье — пошаговая инструкция, которая поможет защитить ваш сайт без глубоких технических знаний.

Шаг 1: Обновите всё, что можно (и нельзя)

Уязвимости в устаревшем ПО — главная причина взломов WordPress. По данным Wordfence, более 50% успешных атак происходят из-за неактуальных версий ядра, плагинов или тем.

Что обновлять:

  • Ядро WordPress: последняя версия закрывает критические уязвимости. Например, в версии 6.4.3 исправлена уязвимость, позволяющая удаленно выполнять код.
  • Плагины и темы: даже неактивные плагины могут быть точкой входа для хакеров. Проверяйте обновления не реже 1 раза в неделю.
  • PHP: устаревшие версии (ниже 8.0) не поддерживаются и содержат уязвимости. Проверьте версию в панели хостинга или через файл phpinfo.php.

Как обновлять безопасно:

  1. Сделайте резервную копию сайта (используйте плагин UpdraftPlus или инструменты хостинга).
  2. Обновите сначала плагины и темы, затем ядро WordPress.
  3. Проверьте сайт на ошибки после обновления. Если что-то сломалось, восстановитесь из бэкапа.

Шаг 2: Укрепите пароли и доступы

61% взломов происходят из-за слабых паролей (отчет Verizon DBIR). Хакеры используют брутфорс-атаки, перебирая миллионы комбинаций в секунду.

Правила надежных паролей:

  • Длина: минимум 12 символов (лучше 16+).
  • Сложность: используйте строчные и прописные буквы, цифры, спецсимволы (например, G7#kL9!pQ2@mZ4$).
  • Уникальность: не используйте один пароль для разных сервисов. Если взломают почту, взломают и сайт.
  • Менеджеры паролей: Bitwarden или 1Password генерируют и хранят пароли безопасно.

Ключевые аккаунты для защиты:

Аккаунт Рекомендации
Администратор WordPress Смените имя пользователя с admin на уникальное. Удалите неиспользуемые аккаунты.
Хостинг Используйте двухфакторную аутентификацию (2FA). Ограничьте доступ по IP, если возможно.
FTP/SFTP Замените пароль на сложный. По возможности используйте ключи SSH вместо паролей.
База данных MySQL Смените префикс таблиц с wp_ на случайный (например, x7f_). Ограничьте доступ к базе данных только с IP вашего сервера.

Шаг 3: Установите плагины безопасности (но не переусердствуйте)

Плагины безопасности — это «сигнализация» для вашего сайта. Они блокируют атаки, сканируют уязвимости и уведомляют о подозрительной активности. Но слишком много плагинов замедляют сайт и могут конфликтовать друг с другом.

Лучшие плагины безопасности (по данным WPBeginner):

Плагин Функции Рейтинг
Wordfence Брандмауэр, сканер вредоносного ПО, защита от брутфорса, мониторинг файлов. 4.8/5 (5+ млн установок)
Sucuri Security Аудит безопасности, удаление вредоносного кода, защита от DDoS, CDN. 4.7/5 (800K+ установок)
iThemes Security Защита от брутфорса, двухфакторная аутентификация, скрытие панели входа. 4.6/5 (1 млн+ установок)
MalCare Автоматическое удаление вредоносного кода, брандмауэр, резервное копирование. 4.9/5 (100K+ установок)

Настройки, которые нужно включить:

  • Брандмауэр (WAF): блокирует вредоносные запросы до того, как они достигнут сайта. Включите в Wordfence или Sucuri.
  • Защита от брутфорса: ограничьте количество попыток входа (например, 5 попыток за 15 минут).
  • Двухфакторная аутентификация (2FA): добавьте второй шаг для входа (SMS, приложение Google Authenticator или ключ безопасности).
  • Сканер вредоносного ПО: запускайте проверку не реже 1 раза в неделю. Настройте автоматическое сканирование.
  • Мониторинг файлов: получайте уведомления об изменениях в файлах ядра WordPress.

Шаг 4: Настройте резервное копирование (бэкапы)

Даже если сайт взломают, резервные копии позволят восстановить его за 10–30 минут. Без бэкапов восстановление может занять несколько дней и стоить тысячи долларов.

Как настроить бэкапы правильно:

  1. Выберите плагин для бэкапов:
    • UpdraftPlus (бесплатный, 3+ млн установок) — простой и надежный.
    • BlogVault (платный, от $8/мес) — автоматические бэкапы с хранением на облаке.
    • Duplicator (бесплатный) — подходит для миграции и бэкапов.
  2. Настройте частоту бэкапов:
    • Для активных сайтов: ежедневные бэкапы.
    • Для статичных сайтов: еженедельные бэкапы.
  3. Храните бэкапы в нескольких местах:
    • На сервере (но не в корневой папке сайта!).
    • На облачных хранилищах (Google Drive, Dropbox, Amazon S3).
    • На локальном компьютере (дополнительная страховка).
  4. Проверяйте бэкапы: раз в месяц восстанавливайте сайт из бэкапа на тестовом домене, чтобы убедиться, что всё работает.

Шаг 5: Ограничьте доступ и скрывайте уязвимости

Хакеры часто атакуют сайты «вслепую», сканируя их на известные уязвимости. Вы можете усложнить им задачу, скрывая ключевую информацию.

Что сделать:

  • Смените URL входа в админку:

    По умолчанию WordPress использует /wp-admin и /wp-login.php. Смените их с помощью плагина WPS Hide Login (например, на /secure-entry).

  • Ограничьте доступ к панели администратора:
    • Используйте плагин Limit Login Attempts Reloaded, чтобы блокировать IP после нескольких неудачных попыток.
    • Настройте доступ по IP: разрешите вход в админку только с вашего офисного или домашнего IP (через файл .htaccess).
  • Скройте версию WordPress:

    Хакеры знают уязвимости конкретных версий. Добавьте в файл functions.php вашей темы следующий код:

    remove_action('wp_head', 'wp_generator');
    add_filter('the_generator', '__return_empty_string');
  • Отключите редактирование файлов в админке:

    Добавьте в wp-config.php строку:

    define('DISALLOW_FILE_EDIT', true);
  • Запретите выполнение PHP в папках загрузок:

    Хакеры часто загружают вредоносные скрипты в /wp-content/uploads/. Добавьте в .htaccess:

    <Files *.php>
    Deny from all
    </Files>

Шаг 6: Выберите надежный хостинг

Качественный хостинг — это 50% успеха в безопасности. Дешевые хостинги экономят на защите, размещая на одном сервере сотни сайтов. Если взломают один сайт, под угрозой окажутся все.

На что обратить внимание при выборе хостинга:

Критерий Что должно быть Чего избегать
Безопасность сервера Брандмауэр, защита от DDoS, изоляция аккаунтов, регулярные обновления ПО. Общие серверы без изоляции, устаревшее ПО.
Резервное копирование Автоматические ежедневные бэкапы с возможностью восстановления в 1 клик. Бэкапы раз в неделю или отсутствие бэкапов.
Поддержка Круглосуточная поддержка с опытом работы с WordPress. Медленная поддержка или отсутствие специалистов по WordPress.
SSL-сертификат Бесплатный SSL (Let’s Encrypt) или возможность установки платного. Отсутствие SSL или платные сертификаты.
Производительность SSD-диски, кэширование, поддержка PHP 8.0+. Медленные HDD-диски, устаревшие версии PHP.

Рекомендуемые хостинги для WordPress:

  • Kinsta (от $30/мес) — управляемый хостинг с высоким уровнем безопасности.
  • SiteGround (от $3.99/мес) — хороший баланс цены и качества.
  • WP Engine (от $25/мес) — оптимизирован для WordPress, высокая безопасность.
  • Cloudways (от $10/мес) — гибкие тарифы на облачных серверах.

Шаг 7: Мониторинг и реагирование на угрозы

Даже с лучшей защитой сайт может быть атакован. Важно вовремя обнаружить угрозу и отреагировать.

Инструменты для мониторинга:

  • Google Search Console: уведомляет о взломе, если Google обнаружит вредоносный код.
  • Wordfence: отправляет email-уведомления о подозрительной активности (например, попытки брутфорса).
  • Sucuri SiteCheck: бесплатный онлайн-сканер, который проверяет сайт на вредоносный код.
  • UptimeRobot: мониторит доступность сайта и уведомляет, если сайт упал.

Что делать, если сайт взломали:

  1. Переведите сайт в режим обслуживания: используйте плагин Maintenance или добавьте в .htaccess:
    RewriteEngine On
    RewriteCond %{REMOTE_ADDR} !^123.456.789.000
    RewriteRule ^(.*)$ - [R=503,L]

    (Замените 123.456.789.000 на ваш IP.)

  2. Восстановите сайт из бэкапа: если у вас есть чистая резервная копия, восстановите её.
  3. Просканируйте сайт: используйте Wordfence или Sucuri для поиска вредоносного кода.
  4. Смените все пароли: администратора, базы данных, FTP, хостинга.
  5. Обновите всё ПО: WordPress, плагины, темы, PHP.
  6. Проверьте файлы ядра: сравните файлы WordPress с оригинальными на wordpress.org.
  7. Обратитесь к специалистам: если не уверены в своих силах, наймите компанию по очистке сайтов (например, Sucuri или MalCare).

Шаг 8: Дополнительные меры безопасности (для параноиков)

Если вы хотите максимальной защиты, выполните эти шаги:

  • Используйте Web Application Firewall (WAF):

    Облачные WAF, такие как Cloudflare или Sucuri Firewall, фильтруют трафик до того, как он достигнет вашего сервера.

  • Отключите XML-RPC:

    XML-RPC используется для атак брутфорсом. Отключите его с помощью плагина Disable XML-RPC или добавьте в .htaccess:

    <Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
    </Files>
  • Ограничьте доступ к REST API:

    Добавьте в functions.php:

    add_filter('rest_authentication_errors', function($result) {
        if (!empty($result)) {
            return $result;
        }
        if (!is_user_logged_in()) {
            return new WP_Error('rest_not_logged_in', 'You are not logged in.', array('status' => 401));
        }
        return $result;
    });
  • Используйте HTTPS везде:

    Установите SSL-сертификат (бесплатный от Let’s Encrypt) и настройте редирект с HTTP на HTTPS.

  • Отключите выполнение PHP в папках wp-includes и wp-content:

    Добавьте в .htaccess:

    <Directory "/var/www/html/wp-includes/">
        <FilesMatch ".php$">
            Deny from all
        </FilesMatch>
    </Directory>
    
    <Directory "/var/www/html/wp-content/uploads/">
        <FilesMatch ".php$">
            Deny from all
        </FilesMatch>
    </Directory>

Заключение: безопасность WordPress — это процесс

Защита сайта на WordPress — это не разовая задача, а непрерывный процесс. Хакеры постоянно ищут новые уязвимости, и вам нужно держать руку на пульсе.

Чек-лист по безопасности WordPress:

  • Обновляйте WordPress, плагины и темы не реже 1 раза в неделю.
  • Используйте сложные пароли и двухфакторную аутентификацию.
  • Установите плагин безопасности (Wordfence или Sucuri).
  • Настройте ежедневные бэкапы с хранением в облаке.
  • Смените URL входа в админку и ограничьте доступ по IP.
  • Выберите надежный хостинг с защитой от DDoS.
  • Мониторьте сайт на предмет взлома и реагируйте быстро.

Следуя этой инструкции, вы снизите риск взлома на 90%. Но помните: 100% безопасности не существует. Ваша задача — сделать сайт настолько защищенным, чтобы хакерам было проще атаковать кого-то другого.

Если у вас нет времени или знаний для самостоятельной настройки безопасности, обратитесь к специалистам. В FlowContent мы помогаем бизнесу защищать сайты и восстанавливать их после взломов. Свяжитесь с нами, чтобы получить консультацию.

Дмитрий Ковалёв, маркетинговый аналитик FlowContent

от автора

написал в