この記事では、よくある疑問にできるだけお答えしました。まず最初のステップは、どのような保護システムが使われているかを特定することです。そのために、代表的なキャプチャやボット対策システムの一覧を参照できます。ここには、どの仕組みが使われているかを素早く見分けるための画面イメージや主な特徴がまとめられています。
もしサイトで Cloudflare Waiting Room が使われていることが分かったら、次のステップはその特徴と動作をより詳しく確認することです。同じこの記事の中で、Cloudflare Waiting Room をサイトに導入するための手順書も確認できるので、あなたのサイト上でどのように機能しているのかをしっかり理解できます。これにより、現在の保護を正しく把握できるだけでなく、今後の運用や保守も計画的に行えるようになります。
CapMonster Cloud で Waiting Room を解決する方法
Waiting Room のメカニズムをテストする際、キューが正しく機能し、サイトへのアクセスを適切に制御していることを確認することが重要です。
確認方法は以下の通りです:
- Waiting Room が有効になっているページを開き、ユーザー制限を超えた際にキューが表示されることを確認します。
- 複数のデバイスやブラウザから同時にサイトにアクセスし、意図的に負荷をかけてみます。一部のリクエストがキューに入れられるはずです。
- キューに入ったユーザーに待機ページが表示され、空きができた際に自動的にサイトへのアクセスが許可されることを確認します。
- ページを再読み込みしても、ユーザーがキューから追い出されないことを確認します。
自動テストやキャプチャ認識には、例えば CapMonster Cloud のような専門サービスを利用できます。これはキャプチャのパラメータを受け取り、サーバー側で処理して解決策を返すツールです。この解決策(トークンやクッキー)をフォームやブラウザに適用することで、ユーザー操作なしで認証を通過できます。
CapMonster Cloud API を使った一般的な手順:
Cloudflare Waiting Room を解決するためのリクエストには、以下のパラメータを指定する必要があります:
type - TurnstileTask;
websiteURL - チェックが存在するページのURL;
websiteKey - ターゲットサイト上の Cloudflare キー;
cloudflareTaskType - wait_room;
htmlPageBase64 - Base64形式のHTMLページ(タイトル <title>Waiting Room powered by Cloudflare</title> が含まれているもの);
userAgent - ブラウザの User-Agent。Windows OS からの最新の UA のみを送信してください;
また、このタスクにはご自身のプロキシを使用する必要があります:
proxyType :
- http - 通常の HTTP/HTTPS プロキシ;
- https - 「http」が機能しない場合に試してください(一部のカスタムプロキシで必要);
- socks4 - SOCKS4 タイプのプロキシ;
- socks5 - SOCKS5 タイプのプロキシ;
proxyAddress - プロキシの IP アドレス IPv4/IPv6;
proxyPort - プロキシのポート;
proxyLogin - プロキシサーバーのログインID;
proxyPassword - プロキシサーバーのパスワード.
https://api.capmonster.cloud/createTask{
"clientKey":"API_KEY",
"task": {
"type":"TurnstileTask",
"websiteURL":"https://example.com",
"websiteKey":"xxxxxxxxxx",
"cloudflareTaskType": "wait_room",
"htmlPageBase64": "PCFET0NUWVBFIGh0...vYm9keT48L2h0bWw+",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36",
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere"
}
}{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}{
"errorId": 0,
"status": "ready",
"solution": {
"cf_clearance": "1tarGvbY2_ZhQdYxpSBloao.FoOn9VtcJtmb_IQ_hCE-1761217338-1.2.1.1-vyVPoLYIGX0VCJomVuLjF7n0kdM0PXaPjpDsRcohxGr7hb2CE7WfcHpmQZ70goqEjdWxPsDhSVaKNTz9opxWguiNdWEEq_.SceWXIqfP7tnEb69f3bP0mixNqcWy_5P_9INpoAEqr1k7aYU0r45PT4gPr5pwHxedVySyLRdoBXIJasdTE52YOQ3NPdGWTwQ_3h2n_wYqqIvf0kCSAvimRrmsgZxomlyejwqPI6ZHi.w"
}
}取得したソリューション (cookie cf_clearance) は、ブラウザに設定するか、HTTPリクエストのヘッダーに Cookie: cf_clearance=<値> を指定して送信できます。また、自動化やテストには Puppeteer、Selenium、Playwright などを使用すると便利です。これらを使えば、ユーザー操作のエミュレート、クッキーの挿入、フォームの送信が可能です。
以下は、事前に取得したクッキー値を使用したページへのリクエスト例です。これはテストに便利です。正しい値と意図的に間違った値の両方を送信して、アクセス処理や検証ロジックが正しく機能しているか確認できます。
GET https://example.com/
sec-ch-ua: "Google Chrome";v="141", "Not?A_Brand";v="8", "Chromium";v="141"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
sec-fetch-site: same-origin
sec-fetch-mode: navigate
sec-fetch-user: ?1
sec-fetch-dest: document
accept-encoding: gzip, deflate, br
accept-language: en-US
cookie: cf_clearance=Jf0udVxx.pxJMEHnish22ZOFt4WZEh8iLKm62gIxQAw-1760087570-1.2.1.1-IAO44jrcaDIU6v3f01Q6MpH58vo521.cgZg9OG5ASav.EIf9fmqH2yETyPkmm7dExFNlRL.dYv6xA4iPtlwMepInUaeFinDbYtoMstD_9Vyexx2B2K.r4eJb9zMCQc0XA3yYDHViOC7cYBYHi58FbvycjBe4o236lyz2eoyC48IS.K1zSsVdqBqIoXIT4tEFYdibXdWudtp57lmyjwpryZy..fGFAcFjAGn3iho98_4
sec-ch-ua-arch: "x86"
sec-ch-ua-bitness: "64"
sec-ch-ua-full-version: "141.0.7390.55"
sec-ch-ua-platform-version: "19.0.0"
sec-ch-ua-model: ""
sec-ch-ua-full-version-list: "Google Chrome";v="141.0.7390.55", "Not?A_Brand";v="8.0.0.0", "Chromium";v="141.0.7390.55"
Origin: https://example.com
Upgrade-Insecure-Requests: 1- Cloudflare プラン:Waiting Room は Business および Enterprise プランで利用可能です。
- CDN とプロキシ:サイトが Cloudflare に接続されており、ドメインまたはサブドメインの DNS レコードが proxied になっている必要があります。
- クッキー:Cloudflare はキュー内の位置を追跡するためにクッキーを使用するため、訪問者はクッキーをサポートしている必要があります。
- どのページ/ユーザーをキューに入れ、どれを Waiting Room から除外するか(例:管理者、VIP、特定のパス)を決定してください。
1. Cloudflare に登録し、サイトを連携させます。
2. Traffic(トラフィック)→ Waiting Room セクションで、新しいキューを作成します:
3. Create Waiting Room(Waiting Room を作成)をクリックします。
以下を指定します:
- Waiting Room を有効にする Hostname / URL。
- Waiting Room の名前(内部管理用)。
- 同時入場を許可する最大ユーザー数(負荷制限が必要な場合のオプション)。
4. 待機ページのデザインをカスタマイズします:
- Cloudflare のテンプレート、または独自の HTML/CSS を使用できます。
- ロゴ、待ち時間の情報、ユーザーへの説明を追加します。
5. Waiting Room を保存して有効化します。
6. ルール(Rules)の設定
Cloudflare では、特定のトラフィックをキューから除外することができます。
一般的なバイパスルール(Bypass Rules):
- 管理者の IP アドレス:常に許可する。
- パス/URL:静的ファイル(.js、.css、.png)や特定のページを除外する。
- 地域ターゲティング:特定の国を除外する。
- クエリ文字列:特定の GET パラメータを除外する。
- Waiting Room → Manage Rules → Create new bypass rule に移動します。
以下を設定します:
- Rule Name:Bypass JS Files
- Expression:ends_with(http.request.uri.path, ".js")
- Action:Bypass Waiting Room
- 保存してデプロイ(Deploy)します。
すべてのバイパスルールにより、トラフィックをアクティブユーザー数から除外できるため、キューに影響を与えません。
高度な機能:
- Scheduled Event:特定の時間帯のみ Waiting Room を有効にする(例:セール時)。
- Analytics:キュー内のユーザー数、待ち時間、スループットの追跡。
- 追加の hostnames/paths:1つの Waiting Room を複数のサブドメインやパスで動作させることが可能です。
API による管理:
Cloudflare Waiting Room API では以下が可能です:
- バイパスルールの作成、変更、削除。
- ルールのリスト表示。
- すべての Waiting Room 設定のプログラムによる管理。
POST zones/{zone_id}/waiting_rooms/{room_id}/rules
Content-Type: application/json
Authorization: Bearer <API_TOKEN>
{
"description": "Bypass admins",
"expression": "ip.src in { '1.2.3.4', '5.6.7.8' }",
"action": "bypass_waiting_room",
"enabled": true
}動作確認
1) 異なるブラウザやデバイスからサイトを開きます。
2) 以下を確認します:
- 制限を超えた際に Waiting Room が表示されるか。
- ページを更新してもキューの順序が維持されるか。
- バイパスルールが機能しているか(例:管理者の IP は待機なしで通過できるか)。
サポートされているキャプチャ
すでにキャプチャや別の保護システムが導入されているサイトを引き継いだものの、コードにはアクセスできない場合でも心配はいりません!どの技術が使われているかを特定するのはそれほど難しくありません。動作が正しいか確認するには、隔離されたテスト環境で認識サービスCapMonster Cloudを利用し、トークン処理の仕組みと検証ロジックが正しく機能しているかをチェックできます。
Cloudflare Waiting Roomの場合も、システムを特定し、その挙動を調べて、保護機能が正しく動いていることを確認すれば十分です。この記事では、Cloudflare Waiting Roomを見分ける方法と、その導入や再設定に関する手順書の見つけ方を紹介しました。これにより、防御を安心して維持し、その動作をしっかりと管理できます。