Brute force атаки — одна из самых распространённых угроз для сайтов на WordPress. Злоумышленники пытаются подобрать логины и пароли, чтобы получить доступ к админке и нанести вред вашему проекту. В этой статье мы подробно разберём методы защиты от brute force атак, рассмотрим полезные плагины и приведём примеры собственного кода для повышения безопасности.
Что такое brute force атака и почему она опасна для WordPress
Brute force атака — это метод перебора паролей и логинов с целью взлома учётной записи. На WordPress-сайтах злоумышленники часто пытаются подобрать пароль к админке, используя автоматические скрипты. Чем проще и короче пароль, тем выше риск успешного взлома.
Последствия взлома могут быть серьёзными: от размещения вредоносного контента до полного контроля над сайтом, кражи данных пользователей и потери репутации.
Именно поэтому важно не только устанавливать сложные пароли, но и применять дополнительные меры защиты от перебора.
Плагины для защиты от brute force атак
1. Limit Login Attempts Reloaded
Один из самых популярных плагинов, который ограничивает количество попыток входа в админку. После нескольких неудачных попыток IP-адрес блокируется на заданное время.
Преимущества:
- Простая настройка и использование
- Поддержка белых списков IP
- Отправка уведомлений на почту при блокировке
2. Wordfence Security
Мощный плагин безопасности с функцией защиты от brute force, встроенным файерволом и сканером вредоносного кода.
Преимущества:
- Блокировка по IP и геолокации
- Мониторинг активности пользователей
- Обновления сигнатур безопасности
3. Loginizer
Плагин с расширенными опциями защиты, включая блокировку по IP, защиту от брутфорса и капчу на странице входа.
Преимущества:
- Поддержка двухфакторной аутентификации
- Поддержка Google reCAPTCHA
- Гибкие настройки блокировок
Как самостоятельно реализовать защиту от brute force в WordPress
Если вы хотите избежать установки дополнительных плагинов или сделать защиту более гибкой, можно написать собственный код для ограничения попыток входа.
Пример простого механизма блокировки IP после 5 неудачных попыток входа с сохранением данных в пользовательских опциях:
function wpauth_check_login_attempts( $username ) {
$ip = $_SERVER['REMOTE_ADDR'];
$key = 'wpauth_failed_attempts_' . $ip;
$attempts = (int) get_transient( $key );
if ( $attempts >= 5 ) {
wp_die('Слишком много неудачных попыток. Попробуйте позже.');
}
}
add_action( 'wp_login_failed', 'wpauth_increment_failed_attempts' );
function wpauth_increment_failed_attempts( $username ) {
$ip = $_SERVER['REMOTE_ADDR'];
$key = 'wpauth_failed_attempts_' . $ip;
$attempts = (int) get_transient( $key );
$attempts++;
set_transient( $key, $attempts, 15 * MINUTE_IN_SECONDS );
}
function wpauth_reset_login_attempts( $user_login, $user ) {
$ip = $_SERVER['REMOTE_ADDR'];
$key = 'wpauth_failed_attempts_' . $ip;
delete_transient( $key );
}
add_action( 'wp_login', 'wpauth_reset_login_attempts', 10, 2 );Этот код отслеживает количество неудачных попыток с одного IP и блокирует дальнейшие попытки на 15 минут после 5 ошибок. При успешном входе счётчик обнуляется.
Дополнительные методы защиты от brute force атак
Использование двухфакторной аутентификации (2FA)
2FA добавляет второй уровень проверки, требуя от пользователя подтверждения входа через приложение или SMS. Даже если пароль скомпрометирован, злоумышленник не сможет войти без второго фактора.
Плагины для 2FA: Google Authenticator, Two Factor Authentication, WP 2FA.
Смена стандартного URL для входа
Стандартный адрес входа /wp-login.php или /wp-admin широко известен и часто служит целью атак. Изменение URL входа усложнит подбор пароля.
Плагины для смены URL: WPS Hide Login, iThemes Security.
Внедрение капчи на страницу входа
Капча помогает отсеять автоматические запросы и остановить ботов. Интеграция Google reCAPTCHA — простой и эффективный способ.
Плагины: Login No Captcha reCAPTCHA, Advanced noCaptcha & invisible Captcha.
Рекомендации по созданию надёжных паролей и управлению доступом
Главное правило безопасности — использовать сложные, уникальные пароли. Рекомендуется применять менеджеры паролей для генерации и хранения.
Также не давайте права администратора всем подряд. Ограничьте доступ, создавая роли с минимально необходимыми правами.
Регулярно обновляйте WordPress, темы и плагины, чтобы закрывать известные уязвимости.
Мониторинг и логирование попыток входа
Отслеживание и анализ попыток входа поможет выявить подозрительную активность и вовремя принять меры.
Плагины для логирования: WP Security Audit Log, Simple Login Log.
Это позволит не только защититься от brute force, но и понять, откуда исходят атаки, и настроить дополнительные фильтры.