プロキシ経由のCAPTCHAは、プロキシそのものへの罰則ではなく、防御システムが「これは人間か?」と判断する仕組みの結果です。プロキシ経由でCAPTCHAが発生しやすくなる理由は主に3つあります。アドレスが他人や他のプログラムと共有されていて、そのアドレスにすでに履歴があり、さらにブラウザの他のシグナルがそのアドレスと矛盾することが多いからです。 CAPTCHAを完全に排除することはできません — そもそもそのために作られた仕組みです — しかし、表示頻度を目に見えて下げることは可能です。ここでは、Google、Yandex、Cloudflare自身が公表している見解をもとに、プロキシがなぜ検証の可能性を高めるのか、どの対策が本当に効果を発揮し、どれが状況を悪化させるだけなのかを解説します。

各サービスが公表している見解

Google:「お使いのネットワークから通常と異なるトラフィック」

Googleは、ネットワークから検索に対する自動リクエストが送信されたときにこのページを表示します。ヘルプでは原因として、コンピュータ上のマルウェア、誰かが自動リクエストを送信している学校やオフィスの共有ネットワーク、他のユーザーが同様の行為をしているVPN、IPv6トンネル、加入者がアドレスを共有しているプロバイダなどが挙げられています。同じヘルプには推奨事項も記載されています。reCAPTCHAを解く、コンピュータをマルウェア検査する、ネットワーク管理者に連絡する、VPNを削除または交換する — Googleによれば、一部のVPNでは正当なトラフィックと不正利用を区別できない — 、プロバイダに連絡する、といった内容です。

プロキシはヘルプで直接言及されていませんが、仕組みは同じです。あなたはアドレスを他人と共有しており、Googleが見ているのはあなたではなく、そのアドレスからのトラフィック全体です。

Yandex:「同種のリクエストが多い」

Yandexのヘルプでは、CAPTCHAの原因は1つです。サービスが同種のリクエストを大量に受け取り、それをロボットではなく人間が送信していることを確認したいのです。プロキシの場合、これは自分のペースだけでなく、同じアドレスを使う全員のペースも影響することを意味します。

reCAPTCHA v3:画像ではなくスコア評価

reCAPTCHAの第3版は、そもそも課題を表示しません。Googleのドキュメントによれば、ユーザーを中断させることは一切なく、0.0から1.0までのスコアを付けます。1.0はおそらく正当な操作、0.0はおそらくボットです。Googleはデフォルトでサイトに閾値0.5を推奨しています。低いスコアに対して何をするか — 検証を表示する、ログイン確認を求める、ブロックする — はサイト側が決定します。

Cloudflare:スコア評価と3種類の検証

Cloudflareは各リクエストを1から99のスケールで評価します。1は自動リクエスト、99は人間によるものです。評価にはヒューリスティクス(既知のフィンガープリントのデータベースとの照合)、ほとんどの評価を付ける機械学習、ヘッドレスブラウザやその他の自動化ツールを検出するJavaScript検証が含まれます。訪問者が検証を受けるのは、ファイアウォールルール、ボット対策モジュール、またはレート制限が発動したときです。検証には3種類あります:

  • 非対話型 — ブラウザがJavaScriptを実行します。通常5秒未満で、人間側の操作は不要です。
  • マネージド — Cloudflareが検証の種類を自動選択します。ほとんどの人は自動的に通過し、「成功」と表示されます。
  • 対話型 — 操作が必要です。Cloudflare自身も、サイトにはこれではなくマネージドを推奨しています。

検証に成功すると、ブラウザはcookie cf_clearance を受け取り、しばらくの間は再検証されません。これはプロキシにとって重要で、理由は以下で明らかになります。

プロキシ経由でCAPTCHAが発生しやすくなる理由

  1. アドレスが共有されており、履歴がある。 GoogleのヘルプにあるVPNと同じ仕組みです。あなたより前にそのアドレスから自動リクエストが送信されていれば、疑いはそのアドレスを使う全員にかかります。安価な共有プロキシはこれの影響を最も受けます。
  2. アドレスの種類。 防御システムは、どのアドレスがホスティング業者に属するかを把握しています。検索エンジンやSNSにとってサーバーIPは、すでに警戒する理由になります。データセンターから人はアクセスしないからです。アドレスの種類の仕組みについては、レジデンシャル、データセンター、モバイルプロキシの記事で解説しています。
  3. 頻度。 「同種のリクエストが多い」はYandexの直接的な表現です。人間より速くページを開くプログラムは、どのアドレスからでもCAPTCHAを受け取ります。
  4. シグナル間の矛盾。 IPはドイツなのに、ブラウザのタイムゾーンと言語はモスクワ。モバイルアドレスなのに、デスクトップブラウザのフィンガープリント。こうした矛盾が1つあるごとにスコアが下がります。どのシグナルが防御システムを混乱させるかについては、アンチボットシステムの仕組みとTLSフィンガープリントとは何かの記事で解説しています。
  5. 履歴とcookieがない。 毎回「まっさらな状態」で新しいアドレスからアクセスするブラウザは、訪問のたびに新規訪問者に見えます。cf_clearance も、蓄積された信頼も失われます。
  6. 自動化。 ヘッドレスブラウザやプログラムで操作されるブラウザは、JavaScriptを通じて自身を露呈します。Cloudflareはこれを独立した検出機構として明確に挙げています。

本当に効果がある対策

  • 適切なアドレスの種類を選ぶ。 厳格な防御のサイトには、サーバーではなくレジデンシャル、モバイル、または静的レジデンシャル(ISP)プロキシを使います。キャリアのモバイルアドレスは数千人の加入者が共有しており、サイト側もブロックするのは得策ではありません。
  • 共有プロキシを使わない。 専用アドレスは、他人の行動ではなく自分の行動だけに責任を持ちます。
  • リクエストごとにアドレスを変えず、維持する。 stickyセッションは、検証通過後のアドレスとcookieの両方を保持します。Cloudflareを使うサイトでリクエストごとにローテーションすると、リクエストごとに新しい検証を受けることになります(IPローテーションとstickyセッション)。
  • ペースを落とす。 リクエスト間の待機と適切な並列度は、Yandexが挙げる主な原因を取り除きます。一般的なルールはrobots.txt、レート制限、礼儀正しいデータ収集の記事にあります。
  • シグナルを一致させる。 ブラウザのタイムゾーン、言語、位置情報はIPの国と一致させ、WebRTCが実際のアドレスを漏らさないようにします。アンチディテクトブラウザはこれを自動で行います(アンチディテクトブラウザとは何か)。
  • セッション間でcookieを保存する。 履歴のあるブラウザプロファイルは、毎回新しいものより検証を通過しやすくなります。
  • 作業前にアドレスを確認する。 ブラックリスト、データベース上のIP種別、リーク — 確認手順はプロキシの確認方法の記事で解説しています。

効果がない対策

  • CAPTCHAのたびにアドレスを変える。 同じプールの新しいアドレスは通常同じ評価を持ち、絶え間ない変更自体が疑わしく見えます。
  • 最も安いプロキシを「多めに」買う。 1000個の共有サーバーアドレスは1000回のCAPTCHAをもたらします。
  • 防御を回避してCAPTCHAを自動で解く。 そうしたサービスは存在しますが、これはサイトの防御を直接回避する行為であり、多くの場合そのルール違反です。たとえばGoogleは、検索に対する自動リクエストを許可なき禁止行為としています。サイトがそこまで執拗に人間とプログラムを区別するなら、自動処理には公式APIを探すべきです。

プロキシなしでCAPTCHAが出る場合

Googleのヘルプは、どこを探すべきかを示しています。コンピュータ上のマルウェア、職場や学校の共有ネットワーク、多くの加入者を1つのアドレス経由で接続するVPNやプロバイダです。モバイルインターネットも数千人を共有アドレス経由で接続するため、他人の活動のせいでCAPTCHAを受け取ることがあります。コンピュータを検査し、VPNと、あなたの名義でリクエストを送信する拡張機能を無効にし、別のネットワークを試してください。

まとめ:症状、原因、対処

症状考えられる原因対処
Googleがすぐに「通常と異なるトラフィック」を表示履歴の悪い共有アドレス専用アドレス。別の種類のプロキシ
Yandexが数回のリクエスト後にCAPTCHAを表示同種のリクエストが多いペースを落とす。リクエストを分散する
Cloudflareがアクセスのたびに検証するアドレスが変わる、またはcookieが保存されないstickyセッション。cookieを保存する
検証が自動で通過しないシグナルの矛盾、または自動化の兆候タイムゾーンと言語をIPに合わせる。通常のブラウザを使う
プール内の全アドレスで一斉にCAPTCHAプール全体(例:1つのサブネット)がマークされている別のプロバイダ、または異なるサブネットのアドレス

サイトがサブネット全体をまとめて制限するIPv6の特殊なケースについては、IPv6プロキシの記事で解説しています。

よくある質問

ほんの数回しかリクエストしていないのに、なぜGoogleはCAPTCHAを表示するのですか?

Googleはあなたのアドレスからのトラフィック全体を評価しており、あなたの分だけではないからです。アドレスが共有されている場合 — VPN、プロキシ、オフィスネットワーク、プロバイダ — 他人の自動リクエストもあなたに降りかかります。これはGoogleのヘルプが明確に述べています。

IPを変えればCAPTCHAから逃れられますか?

一時的には効果があることもありますが、新しいアドレスが同じプールのものであれば、通常は同じ評価です。Cloudflareを使うサイトでは、絶え間ないアドレス変更は通過済みの検証もリセットしてしまいます。

CAPTCHAを最も受けにくいプロキシはどれですか?

永続セッション付きの専用レジデンシャル、モバイル、静的レジデンシャルアドレスです。サーバーと共有プロキシは最もCAPTCHAを受け取ります。

なぜCloudflareは何度も繰り返し検証するのですか?

検証後、Cloudflareはcookie cf_clearanceを発行します。リクエストごとにアドレスが変わるか、ブラウザがcookieを保存しない場合、このマークが失われ、検証が繰り返されます。

reCAPTCHA v3のスコアとは何ですか?

0.0から1.0までの数値です。1.0に近いほど人間らしいと判定されます。Googleはデフォルトでサイトに閾値0.5を推奨しており、低いスコアに対して何をするかはサイト自身が決定します。