Почему может происходить редирект без прохождения recaptcha в форме регистрации?

Ссылка скопирована
1 ответ

Не могу понять, как может происходить редирект, если не пройдена капча в форме регистрации. Как можно это исправить? Ссылки на код и сам сайт прилагаю.
Код с формой и капчой
Функции регистрации
Сам сайт

Дополнительно

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Frontend-редакция Ответ

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

Правильная схема такая:

  1. Пользователь проходит reCAPTCHA.
  2. Фронт отправляет токен вместе с формой.
  3. Сервер отправляет токен в Google для проверки.
  4. Если проверка не прошла — регистрация останавливается.

Для стандартной регистрации WordPress проверку можно повесить на registration_errors:

add_filter('registration_errors', function ($errors) {
    $token = $_POST['g-recaptcha-response'] ?? '';
 
    if ($token === '') {
        $errors->add('recaptcha_empty', 'Подтвердите, что вы не робот.');
        return $errors;
    }
 
    // Здесь должна быть проверка токена через Google siteverify.
    return $errors;
});

add_filter('registration_errors', function ($errors) { $token = $_POST['g-recaptcha-response'] ?? ''; if ($token === '') { $errors->add('recaptcha_empty', 'Подтвердите, что вы не робот.'); return $errors; } // Здесь должна быть проверка токена через Google siteverify. return $errors; });

Если регистрация WooCommerce, нужен фильтр woocommerce_registration_errors. Если форма от плагина — его собственный hook.

Также проверьте кэш: иногда кэш-плагин ломает JS reCAPTCHA или отдаёт старый nonce. Но даже при сломанном JS сервер всё равно должен блокировать регистрацию без валидного токена.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно