RecaptchaV3 пропускает спам
Здравствуйте. RecaptchaV3 не работает на Modx revo. А именно пропускает спам. в день приходит по 10 сообщений от ботов.
В общем сейчас у меня установлена ReCaptchaV2 3.2.2-pl, которая поддерживает RecaptchaV3.
Может я что то пропустил?
1) Ключ сайта и секретный ключ для RecaptchaV3 у меня прописан в настройках
2) На главной странице:
tpl.AjaxForm
В общем сейчас у меня установлена 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>Где то что то пропустил? Комментарии: 9
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Совместно с captcha мудрю и другие способы защиты (скрытые поля, которые якобы спам бот должен все равно заполнить, варианты через js которые предложил Артур и прочее), но все это если и помогает то на пару недель, после чего спам продолжает идти как и раньше.
Опытным путем нашел «лучший для себя способ», однако применяю его там, где пишу сайт с нуля, а не на CMSках. Не использую тег form вообще для создания форм, верстаю все формы так, чтобы они не были заключены в . Да это лишает нас события submit, но поскольку я все равно все свои формы обрабатываю собственными js обработчиками, то для меня это не проблема. Спам бот не определяет такие формы и не атакует их (возможно что на днях они научаться делать и это).
Либо установите нужный компонент, либо используйте правильную инструкцию — https://github.com/sepiariver/recaptchav2/blob/master/README.md
на парочке сайтов при включенном компоненте вообще формы не отпарпвляются, пишет ошибку в форме, при этом сам гугл пишет «Мы обнаружили, что ваш сайт не проверяет токены reCAPTCHA. Подробную информацию вы найдете на нашем сайте для разработчиков.»
Связывался с разработчиком — помощи никакой не дождался, резюме такое — у меня все ОК, разбирайтесь сами…
Что касается спама, да, это не панацея, но позволяет существенно сократить поток, по крайней мере на моих проектах так.
А какой помощи нужно ожидать? Компонент бесплатный, автор возможно делал решение для себя, потом упаковал в пакет и выложил для всех, у него работает, у большинства пользователей тоже.
Если есть какие то проблемы — пишем issue на github, с подробным описанием ошибки, как воспроизвести и т.д. И ждём когда у автора будет время это проверить. Либо можно обратиться за платной помощью к специалистам, чтобы разобраться в проблеме.
Чтобы добавить проверку оценок, надо условие на 21 строке:
if ($data->success) {…
поменять на:
if ($data->success && $data->score >= 0.5) {…
Где $data->score — это возвращаемая пороговая оценка от 0.0 до 1.0, где 1.0 — скорее всего человек, а чем меньше, чем вероятнее, что это бот.