記事ディレクトリ
最近ウェブサイトのバックエンドを確認したところ、1日の平均訪問者数はわずか数千人でした。
Googleアナリティクスを開いたとき、私は完全に衝撃を受けました。
ある日、私のページの閲覧数が突然2万件を超え、ついに有名になれたと思って有頂天になった。しかし、ブラウザの分布を詳しく調べてみると、トラフィックの90%が「HeadlessChrome」と呼ばれるものから来ていることがわかった。
ChatGTPに、これはどのブラウザですか?Chromeの新しいバージョンですか?と尋ねました。
AIは、これはブラウザではないと回答した。
これはロボットです。

HeadlessChromeとは一体何でしょうか?
HeadlessChromeは、その名の通り、Chromeのヘッドレスモードです。Chromeは、皆さんが毎日使っているブラウザです。ヘッドレスモードでは、ブラウザのグラフィカルインターフェースが無効になり、コマンドラインのみを使用してバックグラウンドで実行できるようになります。
アドレスバーもブックマークバーも、何も表示されません。ブラウザエンジンを起動し、ウェブページを読み込み、コンテンツをスクレイピングするだけのコードです。
実際のユーザーは、ウェブ閲覧にこのようなツールを使うことは決してありません。あなたも私も、ニュースを読んだり、動画を見たり、タオバオで買い物をしたりするためにChromeを開きます。HeadlessChromeは、あなたのウェブページを開いてデータを収集し、すぐに離脱します。
したがって、統計バックエンドでHeadlessChromeがトラフィックの80%または90%を占めている場合、そのトラフィックは100%ボットによるトラフィックであると結論付けることができます。
この大量のボットトラフィックは一体どこから来ているのでしょうか?
正直なところ、情報源は非常に多岐にわたります。
最も一般的な例はウェブスクレイピングです。企業や個人の中には、Puppeteer、Playwright、Seleniumなどの自動化フレームワークを使用してヘッドレスブラウザを起動し、ウェブページのコンテンツを一括でスクレイピングするケースがあります。製品価格をスクレイピングする企業もあれば、ニュース記事をスクレイピングする企業、競合他社のデータをスクレイピングする企業もあります。
そして、AIの存在も忘れてはなりません。現在では、様々なAIツール、AI検索エンジン、AI情報検索システムが、バックグラウンドでウェブページを解析しています。記事を公開すると、数十ものAIエージェントが同時にコンテンツを読み込んでいる可能性があります。
もう一つ、より巧妙な方法として、独自のスケジュールタスクを設定する方法があります。例えば、 HeadlessChromeを使って、特定のページのランキング変動を1時間ごとにチェックするSEO監視スクリプトを導入したり、同じくHeadlessChromeを使って、定期的にページのスクリーンショットを撮る自動スクリーンショットサービスを設定したりすることができます。
最も厄介なのは最後のタイプ、つまり悪意のあるスキャンです。自動化されたスクリプトが実行され、ウェブサイトの脆弱性をスキャンしたり、バックエンドのログインインターフェースをテストしたり、さらにはスパムコメントを大量に送信したりします。
統計バックエンドはどのようにしてHeadlessChromeを識別するのですか?
実はとてもシンプルです。どのブラウザも、ウェブページにアクセスする際にリクエストヘッダーにUser-Agentフィールドを含め、サーバーに「自分が誰であるか」を伝えます。HeadlessChromeのデフォルトのUser-Agentには「HeadlessChrome」という文字列が含まれています。分析システムはこのフィールドを解析することで、それが誰であるかを認識できます。
しかし、ウェブクローラーの開発者がコードを少し変更し、User-Agentを通常のChromeやSafariの識別子に変更した場合、統計バックエンドからは全く判別できなくなります。これが本当の厄介な点です。
用CloudFlare WAFはヘッドレスChromeを正確にブロックします。
よし、問題点は特定できた。では、どう解決すればいいだろうか?
最も直接的かつ効果的な解決策は、CDNまたはWAFレイヤーでトラフィックを遮断することです。トラフィックがサーバーに到達するまで処理を待つのではなく、サーバー側の段階でブロックしてください。
Cloudflareを使用している場合、操作は非常に簡単です。
Cloudflareコンソールにログインし、対象ドメインを選択し、「セキュリティ」を見つけて「WAF」をクリックし、「カスタムルール」に移動して新しいルールを作成します。
ルール名は何でも構いません。例えば、「Challenge Headless Chrome「その他、

それだけは覚えておいてください。
分野選択User Agentオペレーターの選択contains値を入力してくださいHeadlessChrome。
この時点でプレビュー式が表示されます。それは...http.user_agent contains "HeadlessChrome"
次に操作で選択しますManaged ChallengeまたはJS Challenge。
- 私は、
Managed Challengeその認証方法はより高度で、実際のユーザーへの影響が少ないからです。
最後に「デプロイ」をクリックすると、このルールがグローバルに適用されます。
Cloudflareは世界中に数百のノードを保有しており、セカンドレベルの同期が設定されています。つまり、ボタンをクリックした瞬間にヘッドレスブラウザのトラフィックはブロックされます。
保護と高度な予防における盲点
しかし、ただし…
ユーザーエージェントを一致させるだけで、デフォルト設定のほとんどのウェブクローラー構成に対応できます。しかし、高度なクローラーに対してはそれだけでは不十分です。
Chrome 110以降、Googleは新しいヘッドレスモードを導入しました。--headless=newパラメータ起動。このモードでは、HeadlessChrome の User-Agent は通常の Chrome とまったく同じで、違いは全くわかりません。
中には、積極的になりすましを行う者もいる。ウェブクローラーの開発者は、コード内でUser-Agentを通常のChromeやモバイルブラウザの識別子に直接置き換えるため、最も厳密なルールを用いても照合が不可能になる。
このような状況に対応するため、Cloudflareはさらに2つの高度な機能を提供しており、これらを有効にすることができます。
一つ目は「ブラウザ整合性チェック」と呼ばれるものです。
この機能を有効にするには、「セキュリティ」→「設定」→ 「ブラウザの整合性チェック」に進み、スイッチをオンにしてください。

TLSフィンガープリントによって異常なトラフィックを識別します。ユーザーエージェントをどれだけ巧妙に偽装しても、TLSフィンガープリントは偽造できません。
2つ目は「ボットファイトモード」、または「ロボットバトルモード」と呼ばれています。
パスは「セキュリティ」→「自動プログラム」→「ボット対策モード」です。このモードも有効にする必要があります。

この機能は、リクエスト頻度、マウスの移動軌跡、ページ滞在時間などの行動特性を組み合わせて、トラフィックがボットによるものかどうかを判断します。
無料版では、疑わしいボットに対して自動的に管理されたチャレンジが適用されますが、有料版ではより詳細なルール設定が可能になります。
スパムからウェブクローラーまで、攻撃者と防御者の戦いは絶えることがない。
そういえば、ふとあることを思い出した。
実際、このような攻防の応酬は、インターネットの歴史を通して繰り広げられてきた。スパムが蔓延していた初期の頃も同じだった。ある機能をブロックすると、送信者は別の機能に変更した。キーワードフィルタリングを使うと、送信者はセンシティブな単語を分解した。送信頻度制限を使うと、送信者は送信頻度を減らした。
今日では、ウェブサイトとウェブクローラーの間の戦いになっています。あなたがユーザーエージェントフィルタリングを使用すると、相手側はユーザーエージェントになりすまします。あなたがTLSフィンガープリンティングを使用すると、相手側はTLSフィンガープリントをシミュレートする方法を研究し始めます。
技術は変化するかもしれないが、根底にあるゲーム理論の論理は決して変わらない。
しかし、ほとんどのウェブサイト所有者にとって、前の手順を実行するだけで十分です。
ヘッドレスChromeのトラフィックの80%は、デフォルト設定のままのクローラーによるもので、これらは偽装する手間を惜しむため、単一のWAFルールで解決できます。高度な偽装を行うクローラーについても、特に保護が必要な機密データがない限り、過度に心配する必要はありません。
必要な機能をすべて有効にすれば、基本的には設定完了です。
最後に、もう一つ付け加えておきたいことがあります。
ウェブサイトのトラフィックが多いほど良いと考える人は多い。しかし、実際のトラフィックとボットを区別できなければ、急増する数字は単なる見せかけの指標に過ぎない。場合によっては、ウェブクローラーがページを大量に読み込んでいるだけなのに、特定のコンテンツが特に人気があると思い込んでしまうなど、判断を誤らせる可能性もある。
交通量の数字を追い求めることよりも、交通の本質を理解することの方がはるかに重要である。
ウェブサイト運営やSEOに携わっている友人がいれば、ぜひこの記事を転送してください。多くの人は、自分のウェブサイトが大量のボットによる攻撃を受けていることに気づいていないかもしれませんし、この問題の解決が実はとても簡単だということを知らないかもしれません。
ここまで読んでいただき、もしこの記事が役に立ったと感じていただけたなら、ぜひ「いいね!」やシェアをお願いします。最新情報をいち早く受け取りたい方は、フォローもお願いします!
私の記事を読んでいただき、ありがとうございました。また次回お会いしましょう。
Chen Weiliang氏のブログ(https://www.chenweiliang.com/ )に掲載されている記事「HeadlessChromeの異常なトラフィック爆発?CloudflareによるWAFルールを使った徹底的なブロック方法(3ステップガイド)」が、皆様のお役に立てば幸いです。
この記事のリンクはご自由に共有してください:https://www.chenweiliang.com/cwl-34500.html
