Как защитить WordPress от слишком большого количества попыток входа

Почему важно ограничивать количество попыток входа в WordPress

Одной из частых причин взлома сайтов на WordPress становятся атаки перебором паролей (brute force). Злоумышленники пытаются подобрать логин и пароль, отправляя множество запросов на страницу входа. Если не ограничивать количество попыток, это создает угрозу безопасности: аккаунты могут быть взломаны, а сервер — перегружен.

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

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

Готовые плагины для ограничения попыток входа в WordPress

Плагин Limit Login Attempts Reloaded

Один из самых популярных бесплатных плагинов — Limit Login Attempts Reloaded. Он позволяет задать максимальное количество попыток входа, после чего IP пользователя блокируется на определенное время.

Преимущества плагина:

  • Простая настройка через админку
  • Поддержка блокировки по IP и по имени пользователя
  • Отправка уведомлений на email при блокировке

Для установки достаточно зайти в раздел «Плагины» → «Добавить новый», найти по названию и активировать.

Плагин WP Limit Login Attempts

Еще один вариант — WP Limit Login Attempts. Он похож по функционалу и также позволяет защитить сайт от переборов, но имеет другой интерфейс и настройки.

Важный момент: всегда проверяйте совместимость плагина с вашей версией WordPress и делайте резервные копии перед установкой.

Реализация ограничения попыток входа с помощью собственного кода в functions.php

Если вы предпочитаете не использовать дополнительные плагины, можно добавить ограничение попыток входа вручную. Ниже приведен пример кода, который ограничивает количество попыток входа с одного IP до 5 за 15 минут.

Для начала создадим функции с префиксом wpguest_ для предотвращения конфликтов:

function wpguest_get_login_attempts() {
    $attempts = get_transient('wpguest_login_attempts_' . $_SERVER['REMOTE_ADDR']);
    return $attempts ? $attempts : 0;
}

function wpguest_increment_login_attempts() {
    $key = 'wpguest_login_attempts_' . $_SERVER['REMOTE_ADDR'];
    $attempts = wpguest_get_login_attempts();
    $attempts++;
    set_transient($key, $attempts, 15 * MINUTE_IN_SECONDS);
}

function wpguest_clear_login_attempts() {
    delete_transient('wpguest_login_attempts_' . $_SERVER['REMOTE_ADDR']);
}

function wpguest_limit_login_attempts_check($user, $username, $password) {
    $max_attempts = 5;
    if (wpguest_get_login_attempts() >= $max_attempts) {
        // Блокируем попытку входа
        return new WP_Error('too_many_attempts', __('Слишком много попыток входа. Попробуйте позже.'));
    }
    return $user;
}

function wpguest_limit_login_attempts_failed($username) {
    wpguest_increment_login_attempts();
}

function wpguest_limit_login_attempts_success($user_login, $user) {
    wpguest_clear_login_attempts();
}

add_filter('authenticate', 'wpguest_limit_login_attempts_check', 30, 3);
add_action('wp_login_failed', 'wpguest_limit_login_attempts_failed');
add_action('wp_login', 'wpguest_limit_login_attempts_success', 10, 2);

Этот код использует transient API для хранения количества попыток на 15 минут. При превышении лимита вход блокируется с сообщением об ошибке.

Преимущества такого подхода:

  • Нет необходимости устанавливать сторонние плагины, что снижает нагрузку
  • Можно легко модифицировать под свои задачи
  • Простая интеграция в существующую тему или плагин

Как улучшить защиту: дополнительные меры

Использование reCAPTCHA или hCaptcha

Добавление капчи на страницу входа значительно осложняет автоматические атаки. Для этого можно использовать плагины, например Advanced noCaptcha & invisible Captcha, или ручную интеграцию Google reCAPTCHA.

Это помогает отфильтровать ботов, которые пытаются перебрать пароли.

Двухфакторная аутентификация (2FA)

Двухфакторная аутентификация требует от пользователя вводить дополнительный код при входе, например из приложения Google Authenticator. Плагины для 2FA, такие как Two Factor Authentication, легко устанавливаются и значительно повышают безопасность.

Ограничение доступа по IP

Если у вас ограниченный круг администраторов, можно настроить ограничение доступа по IP с помощью .htaccess или плагинов. Это исключит попытки входа с незнакомых адресов.

Советы по мониторингу и реагированию на атаки

Регулярно проверяйте логи сервера и логи безопасности WordPress. Для этого удобно использовать плагины типа Wordfence Security, которые показывают попытки входа и блокируют подозрительные IP.

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

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

Как автоматизировать удаление спам-комментариев в WordPress
10.02.2026
Как удалить все комментарии из WordPress одним кодом
21.11.2025
Автоматическое удаление старых товаров WooCommerce по дате
17.06.2026
Как автоматизировать удаление устаревших transient в WordPress
07.03.2026
Как добавить автоматические уведомления о обновлениях плагинов и тем в WordPress
16.03.2026