Corredor

ウェブ、プログラミングの勉強メモ。

reCAPTCHA が遅すぎる → iOS 14 Public Beta の UA 文字列のせいでした

手動認証する reCAPTCHA v2 が遅くなった…。

reCAPTCHA 認証が遅くなった

iPhone から Moon 系の仮想通貨フォーセットを時々叩いているのだが、最近 reCAPTCHA 認証の動作がメチャクチャ遅くなった。

具体的には、

  • 「消火栓の画像を全て選択してください」

みたいな問題で、画像をタップするとその画像がフェードアウトして、次の画像がフェードイン表示されるタイプのヤツ。このフェードの速度がメチャクチャ遅く、次の画像が表示されるまでに10秒くらいかかる。さらに、明らかに正しいモノを選択しているのに、何度も reCAPTCHA 認証をやらされるケースが増えた。

ボットとみなされているらしい

なんでやーと思い調べてみると、同じ事象に遭遇している人がいた。

どうも reCAPTCHA を取り仕切る Google 側が、ウチの接続元情報 (IP など) を「ボットに近い」と判断しているために、フェード速度を遅くして意地悪しているらしい。裏で人間かどうかのスコアを持っているようだ。

VPN を使っていたりすると速度が遅くなるらしいのだが、そういった類のモノを使っていなくても遅いまま。Wi-Fi 経由でも、スマホの 4G 回線経由でも関係なく遅い。

自分のスコアはどのくらい?

ところで、reCAPTHCA が自分のことをどうスコア付けしているかは、公式のサンプルページにアクセスすると分かる。

recaptcha-demo.appspot.com

iPhone でココにアクセスしてみると、

"score": 0.1

とか

"score": 0.3

とか表示されることが多い。

スコアは 0.0 から 1.0 の間で付けられ、0.0 に近いほどボット、1.0 に近いほど人間だとみなされるようだ。0.5 未満だと十中八九ボットでしょう、というのが Google の見解みたい。

iOS Public Beta のせい?

このデモページ、iPhone ではなく PC からアクセスすると

"score": 0.9

ぐらいで表示されて、ほぼ人間と見なしてもらえているみたい。何で?

そこでふと気が付いた。自分の iPhone は本稿執筆時点で Public Beta の iOS 14 を導入している。もしかしたら User Agent が変なのかも?

iOS 14 Public Beta の UA は以下のとおりだった。

ふむ、iPhone OS 14_0 などと入っている。コレはもしかして現時点で未知のユーザエージェント文字列だからボット扱いされているのでは…

そう思い、iOS 12 の端末と iOS 13 の端末を引っ張り出してきて検証してみたところ、いずれもスコアは 0.9 (ほぼ人間) で、reCAPTCHA 認証を開いてみると今までどおり高速でフェード表示された。どうやら現時点で未知のユーザエージェント文字列を発行する iOS 14 Public Beta という OS のせいで reCAPTCHA にボットと見なされていたようであることが分かった。

iOS 14 が正式リリースされるまで我慢

「何ヶ月か経ったら改善した」という投稿を見かけたのは、もしかしたらその Beta 版 OS が正式発表されて、正しい UA だと見なされるようになったから、とかなのかもしれない。

自分はしばらく iOS 13 以前の端末からフォーセットを叩くことにして回避しつつ、iOS 14 の正式リリースを待つしかないかな。

reCAPTCHA (Instrumental)

reCAPTCHA (Instrumental)

  • 発売日: 2018/10/30
  • メディア: MP3 ダウンロード

holLYWOOD reCAPTCHA: I'm Not a Robot File: 1

holLYWOOD reCAPTCHA: I'm Not a Robot File: 1

  • 作者:Dick, Yellowhat
  • 発売日: 2019/08/03
  • メディア: ペーパーバック