RecaptchaV3 пропускает спам
В общем сейчас у меня установлена 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
Есть предложение выкинуть капчу и сделать так. Создаешь скрытое поле с именем например secret. В вызове в параметре validate пишешь secret:contains=^Bdsvgfdbr^ и пишешь js который при загрузке страницы или при попадании любого поля формы в фокус будет заполнять secret значением Bdsvgfdbr (любой набор символов).
Пропускает конечно, этот (как и любой другой) инструмент не дает 100% гарантии. У меня тоже на более чем 20 сайтах установлена recaptcha3 и на каждом из этих сайтов есть спам. Ну вернее на 4 сайтах спама нет, но это не заслуга captcha а просто эти сайты забыты и Богом и спамерскими программами.
Совместно с captcha мудрю и другие способы защиты (скрытые поля, которые якобы спам бот должен все равно заполнить, варианты через js которые предложил Артур и прочее), но все это если и помогает то на пару недель, после чего спам продолжает идти как и раньше.
Опытным путем нашел «лучший для себя способ», однако применяю его там, где пишу сайт с нуля, а не на CMSках. Не использую тег form вообще для создания форм, верстаю все формы так, чтобы они не были заключены в
Совместно с captcha мудрю и другие способы защиты (скрытые поля, которые якобы спам бот должен все равно заполнить, варианты через js которые предложил Артур и прочее), но все это если и помогает то на пару недель, после чего спам продолжает идти как и раньше.
Опытным путем нашел «лучший для себя способ», однако применяю его там, где пишу сайт с нуля, а не на CMSках. Не использую тег form вообще для создания форм, верстаю все формы так, чтобы они не были заключены в
<form>
. Да это лишает нас события submit, но поскольку я все равно все свои формы обрабатываю собственными js обработчиками, то для меня это не проблема. Спам бот не определяет такие формы и не атакует их (возможно что на днях они научаться делать и это).
Кстати, а почему вы используете компонент recaptcha2, есть помоему специально для третьей версии отдельный компонент.
В общем сейчас у меня установлена ReCaptchaV2 3.2.2-pl, которая поддерживает RecaptchaV3. Может я что то пропустил?Так рекапча и не работает, установлен один компонент — ReCaptchaV2, а подключение используется от другого — reCaptchaV3.
Либо установите нужный компонент, либо используйте правильную инструкцию — https://github.com/sepiariver/recaptchav2/blob/master/README.md
У меня на нескольких сайтах стоит reCaptchaV3 — спам летит за сдрасти…
на парочке сайтов при включенном компоненте вообще формы не отпарпвляются, пишет ошибку в форме, при этом сам гугл пишет «Мы обнаружили, что ваш сайт не проверяет токены reCAPTCHA. Подробную информацию вы найдете на нашем сайте для разработчиков.»
Связывался с разработчиком — помощи никакой не дождался, резюме такое — у меня все ОК, разбирайтесь сами…
на парочке сайтов при включенном компоненте вообще формы не отпарпвляются, пишет ошибку в форме, при этом сам гугл пишет «Мы обнаружили, что ваш сайт не проверяет токены reCAPTCHA. Подробную информацию вы найдете на нашем сайте для разработчиков.»
Связывался с разработчиком — помощи никакой не дождался, резюме такое — у меня все ОК, разбирайтесь сами…
на парочке сайтов при включенном компоненте вообще формы не отпарпвляются, пишет ошибку в форме, при этом сам гугл пишет «Мы обнаружили, что ваш сайт не проверяет токены reCAPTCHA. Подробную информацию вы найдете на нашем сайте для разработчиков.»Возможно, за достаточно долгое время использования, я никогда не сталкивался с проблемами как с первым, так и со вторым компонентом. Обычно проблемы обнаруживаются в коде форм, вызовах сниппета, в html коде страницы.
Что касается спама, да, это не панацея, но позволяет существенно сократить поток, по крайней мере на моих проектах так.
Связывался с разработчиком — помощи никакой не дождался, резюме такое — у меня все ОК, разбирайтесь сами…А какой помощи нужно ожидать? Компонент бесплатный, автор возможно делал решение для себя, потом упаковал в пакет и выложил для всех, у него работает, у большинства пользователей тоже.
Если есть какие то проблемы — пишем issue на github, с подробным описанием ошибки, как воспроизвести и т.д. И ждём когда у автора будет время это проверить. Либо можно обратиться за платной помощью к специалистам, чтобы разобраться в проблеме.
И на гитхаб было написано, и вызовы формы стандартные из документации, и форма стандартная… В принципе не заморачиваюсь этим, так как решил проблемы без использования компонента. Просто увидел тему и тоже написал, подтверждая что проблема носит массовый характер. Вы постепенно увидите, что сайты на которых есть связка этих компонентов будут бомбардироваться спамом все больше и больше.
А как удалось решить вопрос спама без recaptcha, если не секрет?
Почему-то в коде этого сниппета вообще не выполняется проверка оценки. Т.е. такая Рекапча будет блокировать только ботов, не умеющих в js.
Чтобы добавить проверку оценок, надо условие на 21 строке:
if ($data->success) {…
поменять на:
if ($data->success && $data->score >= 0.5) {…
Где $data->score — это возвращаемая пороговая оценка от 0.0 до 1.0, где 1.0 — скорее всего человек, а чем меньше, чем вероятнее, что это бот.
Чтобы добавить проверку оценок, надо условие на 21 строке:
if ($data->success) {…
поменять на:
if ($data->success && $data->score >= 0.5) {…
Где $data->score — это возвращаемая пороговая оценка от 0.0 до 1.0, где 1.0 — скорее всего человек, а чем меньше, чем вероятнее, что это бот.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.