Спам Formit(AjaxForm) + reCaptcha V3

Есть несколько сайтов на modx, у которых формы обратной связи реализованы с помощью Formit(AjaxForm) + reCaptcha V3. И в последнее время на них повалил спам.
Чанк
[­[!AjaxForm?
&form=`tpl.AjaxForm-popup`
&snippet=`FormIt`
&hooks=`rcv3,email`
&emailSubject=`Сообщение с сайта`
&emailTo=`[­[++to_email]]`
&emailFrom=`[­[++from_email]]`
&emailTpl=`contaktTpl-popup`
&validate=`name:required,tel:required,g-recaptcha-response:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Спасибо, ваша заявка принята.`
]]
Форма
<form action="#" method="post" class="ajax_form af_example" id="pop-up">
<div class="form-group">
<label class="control-label" for="af_name">Ваше имя*:</label>
<div class="controls">
<input type="text" id="af_name" name="name" placeholder="" class="form-control"/>
<span class="error_name">[­[+fi.error.name]]</span>
</div>
</div>

<div class="form-group">
<label class="control-label" for="tel">Мобильный телефон*:</label>
<div class="controls">
<input type="tel" id="af_tel" name="tel" placeholder="" class="form-control"/>
<span class="error_tel">[­[+fi.error.tel]]</span>
</div>
</div>

<div class="form-group">
<p class="warning-buy"><small><small>Нажимая на кнопку "Отправить", вы даете согласие на обработку <a target="_blank" href="doc/doc/POLITIKA_KONF_GRANIIT.pdf">персональных данных</a></small></small></p>
</div>

<input type="hidden" name="ValToSend" value="">

[­[!rcv3_html? &action=`[­[+rcv3Action:default=``]]` &error=`[­[+fi.error.g-recaptcha-response]]`]]

<div class="form-group">
<div class="controls">
<button type="submit" class="btn btn-default" style="float: none;">[­[%af_submit]]</button>
</div>
</div>
[­[+fi.success:is=`1`:then=`
<div class="alert alert-success">[­[+fi.successMessage]]</div>
`]]
[­[+fi.validation_error:is=`1`:then=`
<div class="alert alert-danger">[­[+fi.validation_error_message]]</div>
`]]
</form>
И переадресация, при успешной отправке:
<script>
$(document).on('af_complete', function(event, response) {
var form = response.form;
if (form.attr('id') == 'pop-up' && response.success) {
window.location.href = "[­[~20]]"
}
});
</script>
Читал, что reCaptcha V3 глюченная, и лучше использовать V2. Так ли это? Может кто-то уже сталкивался с такой проблемой?
Дмитрий
31 января 2022, 09:21
modx.pro
960
0

Комментарии: 4

Андрей
31 января 2022, 10:53
0
Если форм на странице несколько, нужно указать параметр:
&rcv3Action=`contactform` //разный для каждой из форм

Вот это в валидации не нужно
g-recaptcha-response:required

Проверить работает ли рекапча вообще, нет ли ошибок в консоли. Так же можно использовать метод из комментария — RecaptchaV3 пропускает спам, весьма успешно работает.
    Дмитрий
    31 января 2022, 11:31
    0
    а в самой форме [[!rcv3_html? &action=`[[+rcv3Action:default=``]]` &error=`[[+fi.error.g-recaptcha-response]]`]] так и оставить?
      Андрей
      31 января 2022, 11:39
      0
      Да, модификатор default ставит пустой action, если не заполнен параметр, потому лучше указывать название формы.
        Дмитрий
        31 января 2022, 11:53
        0
        спасибо за помощь, буду пробовать
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4