Brute Force атаки являются одной из самых распространенных угроз для сайтов на WordPress. Злоумышленники пытаются подобрать логин и пароль методом перебора, чтобы получить несанкционированный доступ к админке. В этой статье мы подробно разберём, как эффективно защитить ваш WordPress сайт от таких атак, используя плагины и кастомные решения.
Что такое Brute Force атака и почему она опасна для WordPress
Brute Force атака — это автоматизированный перебор паролей и логинов с целью взлома аккаунта. WordPress, как самая популярная CMS, часто становится мишенью таких атак. Атакующие используют боты, которые пытаются войти в админ-панель, перебирая тысячи комбинаций в секунду.
Опасность в том, что даже простая учетная запись с простым паролем может быть быстро взломана. После успешного входа злоумышленник может получить полный контроль над сайтом, изменить контент, установить вредоносные скрипты или украсть данные пользователей.
Поэтому важно сразу предусмотреть защиту от Brute Force атак.
Основные методы защиты WordPress от Brute Force атак
Существует несколько эффективных подходов, которые помогут защитить ваш сайт:
- Ограничение количества попыток входа — блокировка IP после нескольких неудачных попыток;
- Использование сложных паролей — чем длиннее и сложнее пароль, тем труднее его перебрать;
- Двухфакторная аутентификация (2FA) — дополнительный уровень безопасности;
- Смена стандартного URL входа — скрыть стандартную страницу /wp-login.php;
- Реализация капчи — блокировка автоматических ботов;
- Белые списки IP — разрешать доступ только с доверенных адресов;
- Использование файрволов и сервисов защиты — например, Cloudflare.
Плагины для ограничения попыток входа
Один из самых популярных плагинов — Limit Login Attempts Reloaded. Он позволяет настроить максимальное число неудачных попыток входа, после чего IP блокируется на заданное время.
Пример базовой настройки плагина:
add_filter('wpscan_limit_login_attempts_settings', function($settings) {
$settings['max_attempts'] = 5; // Максимум 5 попыток
$settings['lockout_time'] = 900; // Блокировка на 15 минут
return $settings;
});Если вы хотите реализовать ограничение попыток без плагина, можно использовать следующий пример кода в functions.php вашей темы:
function wpscan_limit_login_attempts() {
session_start();
if (!isset($_SESSION['wpscan_failed_attempts'])) {
$_SESSION['wpscan_failed_attempts'] = 0;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['log']) && isset($_POST['pwd'])) {
if ($_SESSION['wpscan_failed_attempts'] >= 5) {
wp_die('Слишком много неудачных попыток входа. Попробуйте позже.');
}
}
}
add_action('login_init', 'wpscan_limit_login_attempts');
function wpscan_increase_failed_attempts($username) {
session_start();
$_SESSION['wpscan_failed_attempts']++;
}
add_action('wp_login_failed', 'wpscan_increase_failed_attempts');
function wpscan_clear_failed_attempts($user_login, $user) {
session_start();
$_SESSION['wpscan_failed_attempts'] = 0;
}
add_action('wp_login', 'wpscan_clear_failed_attempts', 10, 2);Этот код использует сессии для подсчёта неудачных попыток и блокирует дальнейшие попытки после 5 неудач.
Двухфакторная аутентификация (2FA) в WordPress
2FA добавляет дополнительный шаг при входе, например, ввод кода из приложения Google Authenticator или SMS. Это значительно усложняет взлом.
Рекомендуемые плагины:
- Google Authenticator — простой и надёжный;
- Two Factor Authentication от Plugin Contributors — с гибкими настройками;
- Wordfence Security — комплексный плагин с 2FA и защитой от атак.
После установки и активации плагина просто следуйте инструкциям по настройке 2FA для пользователей.
Смена стандартного URL входа
Стандартный адрес входа /wp-login.php или /wp-admin известен всем, включая злоумышленников. Можно изменить URL с помощью плагинов:
- WPS Hide Login — лёгкий и безопасный;
- iThemes Security — комплексный набор защит.
Пример настройки в коде с WPS Hide Login:
add_filter('wpscan_hide_login_slug', function() {
return 'my-secret-login'; // Новый URL входа: site.ru/my-secret-login
});Это усложнит автоматизированные Brute Force атаки, так как стандартный URL будет недоступен.
Использование капчи для защиты от ботов
Капча — это тест, который помогают определить, что вход пытается совершить человек, а не бот. Наиболее популярные решения — Google reCAPTCHA версии 2 и 3.
Плагины с поддержкой капчи для формы входа:
- Login No Captcha reCAPTCHA — простая интеграция;
- Advanced noCaptcha & invisible Captcha — с настройками для разных форм;
- WP Cerber Security — комплексная защита с капчей.
Для интеграции reCAPTCHA вручную в форму входа можно использовать следующий пример:
function wpscan_add_recaptcha_to_login() {
?>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
<?php
}
add_action('login_form', 'wpscan_add_recaptcha_to_login');
function wpscan_verify_recaptcha($user, $password) {
if (!isset($_POST['g-recaptcha-response']) || empty($_POST['g-recaptcha-response'])) {
return new WP_Error('recaptcha_error', __('<strong>Ошибка:</strong> Пожалуйста, подтвердите, что вы не робот.'));
}
$response = wp_remote_post('https://www.google.com/recaptcha/api/siteverify', array(
'body' => array(
'secret' => 'YOUR_SECRET_KEY',
'response' => $_POST['g-recaptcha-response']
)
));
$response_body = wp_remote_retrieve_body($response);
$result = json_decode($response_body);
if (!$result->success) {
return new WP_Error('recaptcha_error', __('<strong>Ошибка:</strong> Подтверждение reCAPTCHA не удалось.'));
}
return $user;
}
add_filter('authenticate', 'wpscan_verify_recaptcha', 21, 2);Не забудьте заменить YOUR_SITE_KEY и YOUR_SECRET_KEY на значения из вашей учетной записи Google reCAPTCHA.
Рекомендации по выбору плагинов и дополнительных мер
При выборе плагина для защиты от Brute Force учитывайте его совместимость с вашей версией WordPress и другими установками. Обязательно тестируйте на тестовом сайте перед запуском на продакшене.
Дополнительно рекомендуется:
- Регулярно обновлять WordPress, темы и плагины;
- Использовать SSL для шифрования данных;
- Настроить мониторинг и оповещение о подозрительной активности;
- Резервное копирование сайта и базы данных.
Использование комплексного подхода значительно повысит безопасность вашего сайта и защитит его от Brute Force атак.