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

В этой статье рассмотрим, как эффективно защитить ваш WordPress сайт от bruteforce атак, используя возможности файла .htaccess. Несмотря на популярность плагинов безопасности, использование .htaccess даёт низкоуровневую защиту, которая существенно снижает нагрузку на сервер и предотвращает попытки взлома, блокируя IP-адреса и ограничивая доступ к административной панели.

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

Bruteforce атака — это метод, при котором злоумышленник пытается подобрать пароль к вашему сайту перебором множества вариантов. В случае WordPress это чаще всего происходит через страницу входа (wp-login.php) или XML-RPC интерфейс. Если успешно подобран пароль, злоумышленник получает полный контроль над сайтом, что может привести к потере данных, установке вредоносного кода и другим серьёзным проблемам.

Типичные признаки bruteforce атак — это значительный рост количества запросов к wp-login.php и резкий всплеск нагрузки на сервер.

Почему стоит использовать .htaccess для защиты от bruteforce атак

Файл .htaccess — это конфигурационный файл для веб-сервера Apache, который позволяет управлять доступом к папкам и файлам сайта на очень низком уровне. Использование .htaccess для ограничения доступа к административной панели позволяет:

  • Блокировать IP-адреса или диапазоны IP, с которых идут подозрительные запросы.
  • Ограничивать доступ к wp-login.php и другим важным файлам только для доверенных IP.
  • Минимизировать нагрузку на сервер, так как блокировка происходит на уровне веб-сервера, до загрузки WordPress.

Это особенно актуально для сайтов на shared-хостингах и при высоких нагрузках.

Как настроить .htaccess для защиты wp-login.php и wp-admin

Рассмотрим несколько практических вариантов защиты с помощью .htaccess.

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

Если у вас фиксированный IP или несколько доверенных IP, можно разрешить доступ к wp-login.php и папке wp-admin только с них. Добавьте в файл .htaccess в корне WordPress следующий код:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Access Control"
AuthType Basic
order deny,allow
deny from all
allow from 123.45.67.89
allow from 111.22.33.44

Здесь замените 123.45.67.89 и 111.22.33.44 на ваши IP адреса. Этот код запрещает доступ всем, кроме указанных IP.

Чтобы применить это к wp-login.php, создайте файл .htaccess в корневой папке с таким содержимым:

<Files wp-login.php>
    order deny,allow
    deny from all
    allow from 123.45.67.89
    allow from 111.22.33.44
</Files>

Блокировка по количеству попыток с помощью mod_evasive

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

Пример конфигурации (настраивается в конфигурации Apache, не в .htaccess):

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10

При превышении лимитов IP автоматически блокируется на 10 секунд.

Как реализовать защиту от bruteforce атак с помощью PHP кода в functions.php

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

function wplock_limit_login_attempts() {
    session_start();
    if (!isset($_SESSION['wplock_login_attempts'])) {
        $_SESSION['wplock_login_attempts'] = 0;
    }

    if ($_SESSION['wplock_login_attempts'] >= 5) {
        wp_die('Слишком много попыток входа. Попробуйте позже.');
    }
}
add_action('login_form', 'wplock_limit_login_attempts');

function wplock_login_failed() {
    session_start();
    $_SESSION['wplock_login_attempts']++;
}
add_action('wp_login_failed', 'wplock_login_failed');

function wplock_clear_login_attempts() {
    session_start();
    $_SESSION['wplock_login_attempts'] = 0;
}
add_action('wp_login', 'wplock_clear_login_attempts');

Этот код увеличивает счётчик попыток при неудачном входе и блокирует дальнейшие попытки после 5 неудач, выводя сообщение. После успешного входа счётчик сбрасывается.

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

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

  • Loginizer — ограничивает попытки входа, блокирует IP, уведомляет администратора.
  • Clearfy Pro — комплексное улучшение безопасности и оптимизации WordPress, включая защиту от bruteforce.

Плагин Clearfy Pro позволяет управлять защитой от атак, включая блокировку по IP и настройку правил доступа. Это удобно, если вы не хотите вручную редактировать .htaccess.

Рекомендации по дополнительным мерам безопасности против bruteforce атак

Кроме ограничений через .htaccess и плагины, рекомендуем:

  • Отключить XML-RPC, если он не используется — это частая точка входа для атак.
  • Использовать двухфакторную аутентификацию (2FA) для входа в админку.
  • Регулярно обновлять WordPress, темы и плагины, чтобы закрывать уязвимости.
  • Использовать сложные уникальные пароли для всех пользователей.

Как отключить XML-RPC через .htaccess

Для дополнительной защиты можно заблокировать доступ к файлу xmlrpc.php, который часто используется для bruteforce атак:

<Files xmlrpc.php>
    order deny,allow
    deny from all
</Files>

Этот простой код запретит доступ к xmlrpc.php полностью.

Как защитить WordPress от взлома: эффективные способы и практические примеры
09.11.2025
Как создать свой плагин WordPress с нуля: пошаговое руководство
29.11.2025
Как отключить комментарии на отдельных страницах WordPress
06.02.2026
Как сделать автоподсказку в поиске WordPress
25.02.2026
Как использовать REST API в WordPress для создания своего плагина
08.12.2025