ReCaptcha v3 медленный ответ с 2 недель - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть 2 сервера, один для тестирования (маленький p c) и большой сервер, оба с Ubuntu. Оба клонировали конфиги, настройки и файлы, используя rsyn c. Проблема в том, что с 2 недель большой сервер замедляется из-за времени отклика Google от reCaptcha v3. На тестируемом компьютере время отклика на сообщение curl составляет 0,3 секунды (очень приемлемое время), но на сервере я получаю в среднем 10 секунд. Оба устройства P C используют один и тот же провайдер и маршрутизатор, поэтому это не проблема скорости или брандмауэра (уже проверено и используется одна и та же конфигурация на обоих).

Я использую этот код:

$ch = curl_init();

curl_setopt_array($ch,
                  [
                      CURLOPT_URL            => 'https://www.google.com/recaptcha/api/siteverify',
                      CURLOPT_POST           => TRUE,
                      CURLOPT_POSTFIELDS     => [
                          'secret'   => $secretKey,
                          'response' => $captchaToken,
                          'remoteip' => $_SERVER['REMOTE_ADDR'],
                      ],
                      CURLOPT_RETURNTRANSFER => TRUE,
                  ]);

$output = curl_exec($ch);
curl_close($ch);

также пробовал этот код, с такими же результатами:

        $output =
        file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" .
                          $secretKey .
                          "&response=" .
                          $captchaToken);

РЕДАКТИРОВАТЬ: больше подробностей для ответа от Google на "медленный сервер". Другой ответ равен за исключением IP-адреса Google:

Main (Slow) server : 172.217.172.36
Test Server: 172.217.162.4

и результатов отладки:

* Hostname in DNS cache was stale, zapped
*   Trying 172.217.162.4...
* TCP_NODELAY set
* Connected to www.google.com (172.217.162.4) port 443 (#0)
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: C=US; ST=California; L=Mountain View; O=Google LLC; CN=www.google.com
*  start date: Mar 24 06:49:44 2020 GMT
*  expire date: Jun 16 06:49:44 2020 GMT
*  subjectAltName: host "www.google.com" matched cert's                     "www.google.com"
*  issuer: C=US; O=Google Trust Services; CN=GTS CA 1O1
*  SSL certificate verify ok.
> POST /recaptcha/api/siteverify HTTP/1.1
Host: www.google.com
Accept: */*
Content-Length: 810
Content-Type: multipart/form-data; boundary=-----------------------        -3e838894f384bb29

< HTTP/1.1 200 OK
< Content-Type: application/json; charset=utf-8
< Date: Tue, 14 Apr 2020 16:02:13 GMT
< Expires: Tue, 14 Apr 2020 16:02:13 GMT
< Cache-Control: private, max-age=0
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< Content-Security-Policy: frame-ancestors 'self'
< X-XSS-Protection: 1; mode=block
< Server: GSE
< Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443";     ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-    Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,h3-T050=":443";     ma=2592000
< Accept-Ranges: none
< Vary: Accept-Encoding
< Transfer-Encoding: chunked
< 
* Connection #0 to host www.google.com left intact

[РЕДАКТИРОВАТЬ]

похоже, что проблема была в Google и DNS Cloudfire .. оба не могут быть доступны через моего интернет-провайдера в течение 2 недель (не знаю почему), я изменяю DNS сервера на OpenDNS, и теперь он снова работает быстро ... ВРЕМЕННОЕ.

...