Как защитить WordPress от DDoS-атак: практические методы и примеры

WordPress — одна из самых популярных CMS, и это делает сайты на ней частой мишенью для DDoS-атак. DDoS (Distributed Denial of Service) — это атака, при которой сервер сайта заваливается огромным количеством запросов, что приводит к его недоступности для реальных пользователей. В этой статье разберёмся, как защитить WordPress от DDoS-атак, рассмотрим эффективные плагины и практические способы снижения рисков.

Что такое DDoS-атака и почему она опасна для WordPress

DDoS-атака направлена на исчерпание ресурсов сервера — процессора, памяти, пропускной способности канала. В результате сайт становится медленным или полностью недоступным. Для WordPress это особенно критично, так как CMS использует динамическую генерацию страниц, что требует ресурсов. При высокой нагрузке сервер просто не успевает обрабатывать запросы.

Кроме прямого ущерба, DDoS-атаки могут использоваться как прикрытие для других вредоносных действий: взлома, внедрения вредоносного кода, кражи данных. Поэтому важно не только восстановить работоспособность сайта, но и обеспечить превентивную защиту.

Для защиты от DDoS важна многоуровневая стратегия: от сетевого уровня до оптимизации самого WordPress.

Использование плагинов для защиты от DDoS-атак

Существует несколько популярных плагинов, которые помогают смягчить последствия DDoS-атак и предотвратить их:

  • Wordfence Security — один из самых известных плагинов безопасности. Включает встроенный брандмауэр, который может фильтровать подозрительные запросы и ограничивать доступ по IP.
  • Cloudflare — не совсем плагин, а сервис с плагином для интеграции. Обеспечивает защиту от DDoS на уровне CDN, фильтрует трафик и блокирует атаки ещё до попадания на сервер.
  • WP Cerber Security — блокирует подозрительные IP, ограничивает количество запросов, защищает от брутфорса и DDoS.

Пример интеграции Cloudflare с WordPress:

if (!function_exists('wpprotect_cf_init')) {
    function wpprotect_cf_init() {
        // Подключаем плагин Cloudflare для оптимальной защиты
    }
    add_action('init', 'wpprotect_cf_init');
}

При использовании Cloudflare важно настроить правила брандмауэра для блокировки подозрительных запросов и включить режим "I'm Under Attack" для автоматической проверки посетителей.

Настройка ограничений на уровне сервера и WordPress

Помимо плагинов, можно настроить ограничения на сервере и в WordPress для снижения нагрузки:

Ограничение количества запросов с одного IP

Это эффективно против простых DDoS-атак и ботов. На уровне .htaccess или Nginx можно прописать правила, которые ограничивают частоту запросов.

# Пример для Apache (.htaccess)
<IfModule mod_evasive20.c>
    DOSHashTableSize 3097
    DOSPageCount 2
    DOSSiteCount 50
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 10
</IfModule>

Для Nginx можно использовать модуль limit_req:

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
    location / {
        limit_req zone=one burst=5;
    }
}

Отключение XML-RPC и других ненужных API

Многие DDoS-атаки используют XML-RPC для отправки множества запросов. Если этот функционал не нужен — его лучше отключить с помощью кода:

function wpprotect_disable_xmlrpc() {
    add_filter('xmlrpc_enabled', '__return_false');
}
add_action('init', 'wpprotect_disable_xmlrpc');

Кэширование страниц

Кэширование уменьшает нагрузку на базу данных и PHP, что повышает устойчивость сайта к нагрузке. Для WordPress подойдут плагины:

  • WP Super Cache
  • W3 Total Cache
  • LiteSpeed Cache (если сервер поддерживает)

Кэширование позволяет отдавать статические копии страниц, что снижает количество запросов к серверу и ускоряет загрузку.

Мониторинг и автоматическая блокировка подозрительной активности

Для своевременного реагирования на DDoS важно настроить мониторинг и автоматическую защиту.

Плагины для мониторинга и автоматической блокировки

Wordfence и WP Cerber обеспечивают детальный лог активности, уведомления и блокировку IP с подозрительной активностью.

Настройте уведомления о превышении лимитов запросов и блокируйте IP, которые создают чрезмерную нагрузку.

Пример функции для автоматической блокировки IP с частыми запросами

function wpprotect_limit_requests() {
    $ip = $_SERVER['REMOTE_ADDR'];
    $limit = 100; // Максимум запросов
    $time_frame = 60; // Время в секундах

    if (!session_id()) session_start();
    if (!isset($_SESSION['requests'])) {
        $_SESSION['requests'] = [];
    }

    $now = time();
    $_SESSION['requests'] = array_filter($_SESSION['requests'], function($timestamp) use ($now, $time_frame) {
        return ($now - $timestamp) < $time_frame;
    });

    $_SESSION['requests'][] = $now;

    if (count($_SESSION['requests']) > $limit) {
        wp_die('Слишком много запросов. Попробуйте позже.');
    }
}
add_action('init', 'wpprotect_limit_requests');

Этот пример можно доработать, сохраняя данные в базе или кэше, чтобы ограничивать запросы по IP глобально.

Внешние сервисы и CDN для защиты от DDoS

Кроме Cloudflare, есть и другие CDN и сервисы защиты:

  • Sucuri Firewall — платный облачный брандмауэр с защитой от DDoS и вредоносных атак.
  • Imunify360 — комплексная защита сервера с возможностями блокировки DDoS.

Использование CDN позволяет распределить нагрузку и отсеять вредоносный трафик ещё на уровне сети.

Настройка защиты с помощью Cloudflare для WordPress (ссылка на плагин)

Рекомендуется установить официальный плагин Cloudflare Protection для удобной интеграции и управления защитой прямо из админки WordPress.

Как защитить WordPress от ботов и скриптовых атак
07.09.2026
Как защитить WordPress от удаленного выполнения кода (RCE)
07.09.2026
Защита WordPress от внедрения злонамеренных скриптов
15.09.2026
Как защитить WordPress от PHP File Injection
07.09.2026
Как защитить WordPress от zero-day атак: практические методы и примеры кода
07.09.2026