BLOG
ブログ
  • TOP
  • BLOG
  • 私はロボットではありません

私はロボットではありません

私はロボットではありません

CONTENT

こんにちは、こんばんは。

今回のテーマは、「私はロボットではありません」で有名なGoogle reCAPTCHAです。


サイト訪問者に対してボット判定を実施するツールで、現在v3までバージョンがあります。「私はロボットではありません」チェックボックスの入力のみで判定可能なのがv3です。9枚の画像から特定の画像を選択させられるのは、v2になります。

無料で使用できるのでとても便利なのですが、去年に無料枠が大幅に縮小されてしまいました。(月単位のリクエスト判定回数の上限が100万->1万に変更され、1/100に縮小)

おかげで、私が担当している案件のサイトにも影響することになり、対応を余儀なくされました。


ひとまず上限に達したらどうなるか確認したかったのですが、公式のドキュメントが結構あやふやで困りました。無料枠は100万と記載されていたり、上限に達した際のエラーコードがはっきり記載されていなかったり・・・。

https://developers.google.com/recaptcha/docs/faq?hl=ja#are-there-any-qps-or-daily-limits-on-my-use-of-recaptcha

https://developers.google.com/recaptcha/docs/verify?hl=ja#error_code_reference


仕方ないので、実際に1万リクエストに達成させて挙動を確認することにしました。リクエストの分析はGoogle Cloud Console の管理画面から確認できます。



















1万回のリクエストを試すにしてもポチポチ人力で対応するのは大変なので、Seleneiumでボットを組んで、開発環境でログインとログアウトを1万回繰り返してもらいました。

数日掛かってようやく1万リクエストに達したのですが、エラーにはならず「?」となりました。

よくよく考えるとBotが操作してるのに、全くエラーにもなっていない点も不可解でした。

環境起因なのか、単純操作が原因なのか、とか色々考えましたが、reCAPTCHAのBot判定ロジックはブラックボックスなので分かるはずもなく・・・。

埒が明かないので、Googleの公式サポートにも問い合わせてみたのですが、具体的な回答は得られませんでした。

結果、本番環境で実際にエラーが起こった際にログを確認する、という方針になったのですが、

個人的にどう検証すれば良かったのか、すごく気になっているので同様のケースで対応された方いれば、教えてほしいです。

それでは、また次回~。