Защита страницы входа — одна из ключевых задач по обеспечению безопасности WordPress-сайта. Помимо стандартных методов, таких как ограничение попыток входа или двухфакторная аутентификация, эффективным способом защиты от автоматизированных атак и ботов является добавление Google reCAPTCHA. В этой статье рассмотрим, как правильно интегрировать reCAPTCHA на страницу входа WordPress с примерами кода и рекомендациями.
Почему стоит использовать reCAPTCHA для защиты страницы входа WordPress
reCAPTCHA — бесплатный сервис от Google, который помогает отличать людей от ботов. Интеграция reCAPTCHA на страницу входа позволяет:
- Сократить количество автоматических попыток взлома (Brute Force).
- Предотвратить регистрацию спам-аккаунтов (если добавлять на страницу регистрации).
- Снизить нагрузку на сервер от ботов.
Есть несколько версий reCAPTCHA: v2 с видимой галочкой "Я не робот" и невидимая reCAPTCHA v3, которая работает в фоновом режиме, оценивая поведение пользователя. Для страницы входа чаще всего используют reCAPTCHA v2, так как она явно демонстрирует защиту посетителю.
Как получить ключи reCAPTCHA для WordPress
Для интеграции нужно зарегистрировать ваш сайт на консоли reCAPTCHA и получить два ключа:
- Site key (публичный ключ) — вставляется в форму на сайте;
- Secret key (секретный ключ) — используется на сервере для проверки ответа.
При регистрации выберите тип reCAPTCHA v2 и укажите домен вашего сайта, например, wplogin.ru.
Добавление reCAPTCHA на страницу входа WordPress через плагин
Самый простой способ — использовать готовые плагины с поддержкой reCAPTCHA. Вот несколько популярных и проверенных:
- Login No Captcha reCAPTCHA — простой, легкий, добавляет reCAPTCHA v2 на страницу входа.
- Advanced noCaptcha & invisible Captcha — поддерживает разные версии reCAPTCHA и интеграцию в формы регистрации, комментариев и восстановления пароля.
- WP Login reCAPTCHA — минималистичный плагин только для страницы входа.
После установки и активации плагина нужно в настройках указать ваши Site key и Secret key. Плагины автоматически вставят reCAPTCHA на форму входа и проверят ответ перед аутентификацией.
Пример настройки плагина Login No Captcha reCAPTCHA
1. Установите и активируйте плагин через админку WordPress.
2. Перейдите в Настройки > Login No Captcha.
3. Введите Site key и Secret key, полученные в консоли Google.
4. Сохраните изменения.
Теперь при входе в WordPress появится поле с reCAPTCHA.
Добавление reCAPTCHA на страницу входа WordPress вручную через код
Если хотите избежать плагинов или нужна кастомизация, можно добавить reCAPTCHA на страницу входа программно. Рассмотрим пример для reCAPTCHA v2.
Шаг 1 — Вставка HTML и скрипта reCAPTCHA в форму входа
Добавим вывод reCAPTCHA в форму входа с помощью хука login_form и подключим скрипт Google:
add_action('login_form', 'wplogin_add_recaptcha_to_login_form');
function wplogin_add_recaptcha_to_login_form() {
echo '<div class="g-recaptcha" data-sitekey="ВАШ_SITE_KEY"></div>';
echo '<script src="https://www.google.com/recaptcha/api.js" async defer></script>';
}Шаг 2 — Проверка ответа reCAPTCHA при авторизации
Проверим ответ reCAPTCHA при попытке входа с помощью фильтра authenticate. Если проверка не пройдена, прервем авторизацию с ошибкой.
add_filter('authenticate', 'wplogin_verify_recaptcha_on_login', 30, 3);
function wplogin_verify_recaptcha_on_login($user, $username, $password) {
if (isset($_POST['g-recaptcha-response'])) {
$response = sanitize_text_field($_POST['g-recaptcha-response']);
$remoteip = $_SERVER['REMOTE_ADDR'];
$secret = 'ВАШ_SECRET_KEY';
$verify = wp_remote_post('https://www.google.com/recaptcha/api/siteverify', [
'body' => [
'secret' => $secret,
'response' => $response,
'remoteip' => $remoteip
]
]);
$success = false;
if (!is_wp_error($verify)) {
$json = json_decode(wp_remote_retrieve_body($verify));
$success = $json->success ?? false;
}
if (!$success) {
return new WP_Error('wplogin_recaptcha_error', __('<strong>Ошибка</strong>: Подтвердите, что вы не робот.'));
}
} else {
return new WP_Error('wplogin_recaptcha_error', __('<strong>Ошибка</strong>: reCAPTCHA не была заполнена.'));
}
return $user;
}Особенности и советы по использованию reCAPTCHA на странице входа
Несколько моментов, которые стоит учесть при внедрении reCAPTCHA:
- Пользовательский опыт: не усложняйте вход лишними проверками, если ваш сайт не подвержен атакам. Иногда невидимая reCAPTCHA v3 — лучший выбор.
- Кэширование: если вы используете кэширование страниц или плагинов типа LiteSpeed Cache, обязательно настройте исключения для страницы входа и скриптов reCAPTCHA.
- Совместимость с плагинами: некоторые плагины безопасности уже могут иметь встроенную поддержку reCAPTCHA — проверьте конфликты.
- Локализация: Google reCAPTCHA позволяет менять язык интерфейса через параметр
hlв URL скрипта, например,https://www.google.com/recaptcha/api.js?hl=ru.
Альтернативные плагины для расширенной защиты входа
Если помимо reCAPTCHA вы хотите добавить дополнительные уровни защиты, обратите внимание на плагины из каталога WPShop:
- Clearfy Pro — оптимизация безопасности с множеством функций, включая защиту входа.
- Expert Review — аудит безопасности сайта с рекомендациями.
- WPGPT — автоматизация поддержки пользователей с AI, может помочь с вопросами по входу.
Интегрируя reCAPTCHA и используя специализированные плагины, вы значительно повысите безопасность входа на вашем сайте.