reCAPTCHA が遅すぎる → iOS 14 Public Beta の UA 文字列のせいでした
手動認証する reCAPTCHA v2 が遅くなった…。
目次
reCAPTCHA 認証が遅くなった
iPhone から Moon 系の仮想通貨フォーセットを時々叩いているのだが、最近 reCAPTCHA 認証の動作がメチャクチャ遅くなった。
具体的には、
- 「消火栓の画像を全て選択してください」
みたいな問題で、画像をタップするとその画像がフェードアウトして、次の画像がフェードイン表示されるタイプのヤツ。このフェードの速度がメチャクチャ遅く、次の画像が表示されるまでに10秒くらいかかる。さらに、明らかに正しいモノを選択しているのに、何度も reCAPTCHA 認証をやらされるケースが増えた。
ボットとみなされているらしい
なんでやーと思い調べてみると、同じ事象に遭遇している人がいた。
- 参考 : firefox - Why is reCAPTCHA image fade in/out so slow? - Super User
- 参考 : ReCaptcha extremly slow fading · Issue #268 · google/recaptcha · GitHub
- 参考 : ログイン - Google アカウント
- 参考 : Solved Slow captcha refresh / fading pictures? - JDownloader Community - Appwork GmbH
どうも reCAPTCHA を取り仕切る Google 側が、ウチの接続元情報 (IP など) を 「ボットに近い」と判断しているために、フェード速度を遅くして意地悪しているらしい。裏で人間かどうかのスコアを持っているようだ。
VPN を使っていたりすると速度が遅くなるらしいのだが、そういった類のモノを使っていなくても遅いまま。Wi-Fi 経由でも、スマホの 4G 回線経由でも関係なく遅い。
自分のスコアはどのくらい?
ところで、reCAPTHCA が自分のことをどうスコア付けしているかは、公式のサンプルページにアクセスすると分かる。
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 は以下のとおりだった。
Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1
- 参考 : ユーザーエージェント確認サイト
ふむ、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 の正式リリースを待つしかないかな。
2021-01-08 : やはりこの予想は当たっていたようで、iOS14 の正式版がリリースされて少しすると、ReCAPTCHA 認証がスムーズに通るようになった。ベータ版 OS は避けた方が良いな…。