Как защитить WordPress от bruteforce атак с помощью кода

Bruteforce атаки — одна из самых распространённых угроз для сайтов на WordPress. Они представляют собой автоматический перебор паролей, что может привести к взлому сайта, потере данных и нарушению работы. В этой статье мы подробно рассмотрим, как защитить WordPress от bruteforce атак без использования тяжёлых плагинов, только с помощью кода и минимальных настроек.

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

Bruteforce атака — это когда злоумышленник пытается подобрать правильный пароль или логин путём последовательного перебора множества вариантов. WordPress по умолчанию не ограничивает количество попыток входа, что облегчает работу автоматизированных ботов.

Последствия bruteforce атак:

  • Взлом сайта, получение доступа к админке.
  • Установка вредоносного кода, спам и SEO-атаки.
  • Перегрузка сервера из-за большого количества запросов.

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

Ограничение количества попыток входа через код — базовый метод защиты

Вместо установки плагинов, которые могут нагружать сайт, можно реализовать ограничение попыток входа через функции в functions.php вашей темы или в отдельном плагине.

Основная идея — считать количество неудачных попыток для каждого IP в базе данных transient или в опциях и блокировать попытки при превышении лимита.

Пример функции ограничения попыток входа

function wpset_limit_login_attempts() {
    $ip = $_SERVER['REMOTE_ADDR'];
    $attempts = (int) get_transient('wpset_login_attempts_'. $ip);
    
    if ($attempts >= 5) {
        wp_die('Слишком много попыток входа. Пожалуйста, попробуйте позже.');
    }
}

add_action('wp_login_failed', 'wpset_login_failed_attempt');
function wpset_login_failed_attempt() {
    $ip = $_SERVER['REMOTE_ADDR'];
    $attempts = (int) get_transient('wpset_login_attempts_'. $ip);
    $attempts++;
    set_transient('wpset_login_attempts_'. $ip, $attempts, 15 * MINUTE_IN_SECONDS);
}

add_action('wp_authenticate', 'wpset_limit_login_attempts');

В этом коде мы храним количество неудачных попыток для каждого IP в transient, который живёт 15 минут. Если попыток больше 5, пользователь блокируется.

Блокировка по IP и белые списки

Для повышения безопасности можно добавить белый список IP, например, для администраторов с фиксированными IP, и блокировать подозрительные адреса.

function wpset_limit_login_attempts() {
    $ip = $_SERVER['REMOTE_ADDR'];
    $whitelist = ['123.123.123.123', '111.222.333.444']; // разрешённые IP
    
    if (in_array($ip, $whitelist)) {
        return; // не ограничиваем для белого списка
    }
    // остальной код ограничения
}

Такой подход позволит не блокировать админов при тестах и предотвратить ложные срабатывания.

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

Если вы хотите более продвинутую защиту с логированием, капчей и фильтрами, рассмотрите плагины:

  • Brute Force Login Protection — простой и эффективный плагин для ограничения попыток входа.
  • Clearfy Pro — плагин с обширным набором функций безопасности, включая защиту от bruteforce.

Эти плагины можно использовать совместно с собственными решениями для максимальной надёжности.

Дополнительные советы по защите от bruteforce атак

Смена стандартного URL входа

По умолчанию вход в WordPress доступен через /wp-login.php и /wp-admin. Изменение этих URL с помощью плагинов, например Clearfy Pro, значительно снижает риск атаки.

Использование двухфакторной аутентификации

Двухфакторная аутентификация (2FA) добавляет дополнительный слой безопасности, требуя подтверждение входа через мобильное приложение или смс. Многие плагины поддержки 2FA доступны бесплатно.

Регулярное обновление WordPress, тем и плагинов

Очень важно своевременно обновлять сайт, чтобы закрывать уязвимости, которые могут быть использованы при bruteforce атаках или других типах взломов.

Выводы и практические рекомендации

Для эффективной защиты от bruteforce атак в WordPress достаточно комбинировать несколько методов:

  1. Ограничение количества попыток входа через код, как показано выше.
  2. Блокировка и белые списки IP.
  3. Изменение стандартных URL входа.
  4. Использование двухфакторной аутентификации.
  5. Применение лёгких плагинов, если необходимо расширить функционал.

Пример функции ограничения попыток можно легко адаптировать под свои нужды, добавляя записи в лог, уведомления на email и другие меры безопасности.

Таким образом, вы защищаете свой WordPress-сайт от одной из самых популярных форм атак, значительно снижая риски взлома и сохраняя стабильность работы проекта.

Как создать фильтрованный вывод постов в WordPress с помощью кода
14.01.2026
Как удалить неактуальные transienty в WordPress и оптимизировать кэш
23.03.2026
Как удалить неиспользуемые поля в WordPress
20.01.2026
WooCommerce: автоматическое удаление отсутствующих вариаций товаров
29.05.2026
Как удалить ревизии записей в WordPress без плагинов
14.12.2025