RecaptchaV3 пропускает спам

Здравствуйте. RecaptchaV3 не работает на Modx revo. А именно пропускает спам. в день приходит по 10 сообщений от ботов.
В общем сейчас у меня установлена ReCaptchaV2 3.2.2-pl, которая поддерживает RecaptchaV3.
Может я что то пропустил?

1) Ключ сайта и секретный ключ для RecaptchaV3 у меня прописан в настройках

2) На главной странице:
<script src="https://www.google.com/recaptcha/api.js?render=[[++recaptchav3.site_key]]&hl=[[++cultureKey]]"></script>
[[!AjaxForm?
&snippet=`FormIt`
&form=`tpl.AjaxForm`
&hooks=`rcv3,FormItSaveForm,email`
&emailTpl=`tpl.email.attach`
&emailSubject=`Сообщение с главной стр3`
&emailTo=`test@yandex.ru`
&validate=`name:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено`
&rcv3Action=`contactform`
]]
в

tpl.AjaxForm

<form action="" method="post" class="bg">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="text" id="af_name" name="name" class="form-control" value="[[+fi.name]]" placeholder="Введите имя">
<span class="error_name">[[+fi.error.name]]</span>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<div class="checkbox">
    <label>
      <input type="checkbox" required=""> Согласен на <a href="[[~19]]">Обработку персональных данных</a>
      <span class="error">[[+fi.error.opd]]</span>
    </label>
</div>
</div>
</div>
</div>

<button type="submit" class="btn btn-primary py-3 px-5">Отправить сообщение!</button>

 [[+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> `]]

[[!rcv3_html? &action=`[[+rcv3Action:default=``]]` &error=`[[+fi.error.g-recaptcha-response]]`]]
</form>
Где то что то пропустил?
Андре Владимирович
20 ноября 2021, 08:42
modx.pro
1
2 449
0

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

Артур Шевченко
20 ноября 2021, 11:14
+1
Есть предложение выкинуть капчу и сделать так. Создаешь скрытое поле с именем например secret. В вызове в параметре validate пишешь secret:contains=^Bdsvgfdbr^ и пишешь js который при загрузке страницы или при попадании любого поля формы в фокус будет заполнять secret значением Bdsvgfdbr (любой набор символов).
    Александр Мельник
    20 ноября 2021, 12:10
    0
    Пропускает конечно, этот (как и любой другой) инструмент не дает 100% гарантии. У меня тоже на более чем 20 сайтах установлена recaptcha3 и на каждом из этих сайтов есть спам. Ну вернее на 4 сайтах спама нет, но это не заслуга captcha а просто эти сайты забыты и Богом и спамерскими программами.
    Совместно с captcha мудрю и другие способы защиты (скрытые поля, которые якобы спам бот должен все равно заполнить, варианты через js которые предложил Артур и прочее), но все это если и помогает то на пару недель, после чего спам продолжает идти как и раньше.
    Опытным путем нашел «лучший для себя способ», однако применяю его там, где пишу сайт с нуля, а не на CMSках. Не использую тег form вообще для создания форм, верстаю все формы так, чтобы они не были заключены в
    <form>
    . Да это лишает нас события submit, но поскольку я все равно все свои формы обрабатываю собственными js обработчиками, то для меня это не проблема. Спам бот не определяет такие формы и не атакует их (возможно что на днях они научаться делать и это).
      Александр Мельник
      20 ноября 2021, 12:16
      0
      Кстати, а почему вы используете компонент recaptcha2, есть помоему специально для третьей версии отдельный компонент.
        Андрей
        22 ноября 2021, 12:49
        +1
        В общем сейчас у меня установлена ReCaptchaV2 3.2.2-pl, которая поддерживает RecaptchaV3. Может я что то пропустил?
        Так рекапча и не работает, установлен один компонент — ReCaptchaV2, а подключение используется от другого — reCaptchaV3.

        Либо установите нужный компонент, либо используйте правильную инструкцию — https://github.com/sepiariver/recaptchav2/blob/master/README.md
          Андрей
          22 ноября 2021, 20:39
          0
          У меня на нескольких сайтах стоит reCaptchaV3 — спам летит за сдрасти…
          на парочке сайтов при включенном компоненте вообще формы не отпарпвляются, пишет ошибку в форме, при этом сам гугл пишет «Мы обнаружили, что ваш сайт не проверяет токены reCAPTCHA. Подробную информацию вы найдете на нашем сайте для разработчиков.»
          Связывался с разработчиком — помощи никакой не дождался, резюме такое — у меня все ОК, разбирайтесь сами…
            Андрей
            22 ноября 2021, 22:56
            0
            на парочке сайтов при включенном компоненте вообще формы не отпарпвляются, пишет ошибку в форме, при этом сам гугл пишет «Мы обнаружили, что ваш сайт не проверяет токены reCAPTCHA. Подробную информацию вы найдете на нашем сайте для разработчиков.»
            Возможно, за достаточно долгое время использования, я никогда не сталкивался с проблемами как с первым, так и со вторым компонентом. Обычно проблемы обнаруживаются в коде форм, вызовах сниппета, в html коде страницы.

            Что касается спама, да, это не панацея, но позволяет существенно сократить поток, по крайней мере на моих проектах так.

            Связывался с разработчиком — помощи никакой не дождался, резюме такое — у меня все ОК, разбирайтесь сами…
            А какой помощи нужно ожидать? Компонент бесплатный, автор возможно делал решение для себя, потом упаковал в пакет и выложил для всех, у него работает, у большинства пользователей тоже.

            Если есть какие то проблемы — пишем issue на github, с подробным описанием ошибки, как воспроизвести и т.д. И ждём когда у автора будет время это проверить. Либо можно обратиться за платной помощью к специалистам, чтобы разобраться в проблеме.
              Андрей
              23 ноября 2021, 07:56
              0
              И на гитхаб было написано, и вызовы формы стандартные из документации, и форма стандартная… В принципе не заморачиваюсь этим, так как решил проблемы без использования компонента. Просто увидел тему и тоже написал, подтверждая что проблема носит массовый характер. Вы постепенно увидите, что сайты на которых есть связка этих компонентов будут бомбардироваться спамом все больше и больше.
                steve.kon
                04 октября 2022, 17:32
                0
                А как удалось решить вопрос спама без recaptcha, если не секрет?
          Владимир
          01 января 2023, 12:51
          1
          0
          Почему-то в коде этого сниппета вообще не выполняется проверка оценки. Т.е. такая Рекапча будет блокировать только ботов, не умеющих в js.

          Чтобы добавить проверку оценок, надо условие на 21 строке:
          if ($data->success) {…
          поменять на:
          if ($data->success && $data->score >= 0.5) {…

          Где $data->score — это возвращаемая пороговая оценка от 0.0 до 1.0, где 1.0 — скорее всего человек, а чем меньше, чем вероятнее, что это бот.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            9