reCaptcha явно идентифицирует людей как ботов - PullRequest
1 голос
/ 01 октября 2019

Я создал простой сайт для кого-то. Этот сайт содержит контактную форму, которая защищена с помощью reCaptcha (невидимо).

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

Я проверил, могу ли я воспроизвести проблему. Я протестировал его в Firefox, Chrome, Edge и даже Internet Explorer на 3 разных устройствах, и в 100% случаев он работал отлично .

У кого-нибудь еще были проблемы с reCaptcha и он мог бытьможете мне помочь?


Вот как я реализовал reCaptcha:

Я загрузил API reCaptcha с помощью своего ключа:

<script src="https://www.google.com/recaptcha/api.js?render=<myKey>"></script>

Затем я его инициализировал:

grecaptcha.ready(function(){
  grecaptcha.execute("<myKey>").then(function(token){
    var recaptchaResponse = document.getElementById('recaptchaResponse');
    recaptchaResponse.value = token;
  });
});

В моей форме я получил скрытый элемент ввода с ответом reCaptcha:

<input type="hidden" name="recaptcha_response" id="recaptchaResponse">

Затем с помощью AJAX я вызываю php-файл для почты:

$.ajax({
  type: 'POST',
  url: $(form).attr('action'),
  data: {
    // all the data
    captcha: document.getElementById('recaptchaResponse').value
  }
});

И, наконец, PHP:

$secret = "<myKey>";
$response = $_POST["captcha"];

$verify = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$response}");

$captcha_success = json_decode($verify);

if($captcha_success->success==false){
  echo "we don't like bots here";
} else if($captcha_success->success==true){
  // the mail function stuff
}

Кто-нибудь может представить, в каком случае может произойти сбой проверки?

...