logo
bars

reCAPTCHA v2
と CapMonster Cloud

キャプチャの解決、サイトへの実装、エンドツーエンドのテストを一つの手順で。
キャプチャや防御機構が導入済みのサイトを引き継いだのに、ソースコードへアクセスできない? その場合、どの仕組みが入っているのか、設定は正しいのか、どう検証するのかが気になります。

この記事では、よくある疑問にできるだけお答えしました。まず最初のステップは、どのような保護システムが使われているかを特定することです。そのために、代表的なキャプチャやボット対策システムの一覧を参照できます。ここには、どの仕組みが使われているかを素早く見分けるための画面イメージや主な特徴がまとめられています。

もしサイトで reCAPTCHA V2 が使われていることが分かったら、次のステップはその特徴と動作をより詳しく確認することです。同じこの記事の中で、reCAPTCHA V2 をサイトに導入するための手順書も確認できるので、あなたのサイト上でどのように機能しているのかをしっかり理解できます。これにより、現在の保護を正しく把握できるだけでなく、今後の運用や保守も計画的に行えるようになります。

Google reCAPTCHA v2 とは
Google reCAPTCHA v2 とは
reCAPTCHA v2 は Google が提供する保護システムで、サイトに害を与えるスパムや自動化された動作を防ぐために設計されています。実際の訪問者とボットを見分けることで、Web リソースの安全性と安定性を保ちます。
Background
reCAPTCHA V2 の例
reCAPTCHA v2
reCAPTCHA v2
ユーザーが自分が人間であることをチェックボックスで確認する古典的なキャプチャです。必要に応じて、特定の画像を選ぶなど追加の課題が表示される場合があります。
reCAPTCHA v2 Invisible
reCAPTCHA v2 Invisible
ユーザー操作なしで自動的に検証が行われる不可視バージョンで、チェックボックスをクリックする必要はありません。
reCAPTCHA v2 Enterprise
reCAPTCHA v2 Enterprise
追加の制御機能を備えたエンタープライズ向けバージョンです。

CapMonster Cloud で reCAPTCHA v2 を解く方法

reCAPTCHA V2 を含むフォームをテストする際は、キャプチャが正しく組み込まれ機能しているか確認する必要があります。

サイトに埋め込まれたキャプチャを手動で確認する方法

  • フォームのページを開き、キャプチャが表示されることを確かめます。
  • 解決せずにフォーム送信を試みると、サーバーはエラーを返すはずです。
  • 正しく解決した後は、問題なく送信できる必要があります。

自動解決には CapMonster Cloud のようなツールを使うと便利です。キャプチャのパラメータを送信すると、サーバー側で処理して利用可能なトークンを返してくれます。そのトークンをフォームに挿入すれば、ユーザー操作なしでチェックを通過できます。

CapMonster Cloud API を使った一般的な手順:

タスクの作成タスクの作成
arrow
API リクエストの送信API リクエストの送信
arrow
結果の受信結果の受信
arrow
トークンをページへ適用トークンをページへ適用
arrow
既製ライブラリで reCAPTCHA v2 を解く
CapMonster Cloud には PythonJavaScript (Node.js)、C# 向けの SDK が用意されており、すぐに利用できます。
Python
JavaScript
C#
解答、トークン挿入、フォーム送信まで
Node.js で実装したサンプルで、ウェブページ上のキャプチャ解決の全工程をカバーします。HTML とキャプチャパラメータを HTTP で取得して解答を送る方法、あるいは Playwright などの自動化ツールでページを開きキャプチャを待ち、(正しい/誤った)パラメータを送って結果を CapMonster Cloud クライアントから受け取り、トークンをフォームに挿入して挙動を確認する方法などがあります。
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium


const { chromium } = require('playwright');
const { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2Request } = require('@zennolab_com/capmonstercloud-client');

(async () => {
  const browser = await chromium.launch({ headless: false });
  const page = await browser.newPage();

  const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=high';
  const WEBSITE_KEY = '6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd';
  const CMC_API_KEY = 'your_capmonster_cloud_api_key';

  const cmc = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: CMC_API_KEY }));

  await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });

  // キャプチャの解答処理
  const solution = await cmc.Solve(new RecaptchaV2Request({ websiteURL: TARGET_URL, websiteKey: WEBSITE_KEY }));
  const token = solution.solution.gRecaptchaResponse;

  // トークンを挿入しフォームを送信(必要なセレクターに置き換え)
  await page.evaluate((t) => {
    const ta = document.querySelector('textarea#g-recaptcha-response');
    if (ta) ta.value = t;
    document.querySelector('form.formular')?.submit();
  }, token);

  console.log('キャプチャが解け、フォームが送信されました!');
})();
reCAPTCHA v2 をサイトに組み込む方法
サイト上での動作を理解し、検証ロジックや再設定の流れを把握するにはこのセクションを確認してください。保護のセットアップ手順を網羅しており、要点をすばやく押さえられます。

1. reCAPTCHA 管理コンソールにアクセスします。

2. 新しいサイトを登録。

reCAPTCHA v2(チェックボックス+課題、または不可視タイプ)を選択します。

HowTo Connect image 1

3. 2 つのキーを取得:

  • Site key — フロントエンドで使用する公開キー;
  • Secret key — サーバー側で検証に使う秘密キー。

HowTo Connect image 2

設定画面で reCAPTCHA を利用できるドメインや、利用するセキュリティレベル(簡易~高セキュリティ)を指定できます。

4. クライアント側コードの例。 reCAPTCHA v2 を埋め込んだ HTML フォーム(ページ本文にそのまま貼り付け可能):

reCAPTCHA v2 付き HTML フォームreCAPTCHA v2 付き HTML フォーム
arrow

5. サーバー側で応答を検証。

PHP の例PHP の例
arrow
Background
想定されるエラーとデバッグ
Bug Icon
無効なサイトまたはキー
キャプチャが読み込まれない、または invalid-input-secret を返します。
Bug Icon
解答タイムアウト
サーバーが時間内に結果を受け取りませんでした。タイムアウトを延長してください。
Bug Icon
空のトークン
結果をページへ渡す際にエラーが発生しました。
Bug Icon
Response success=false
トークンが期限切れ、再利用、あるいは改ざんされました。リクエストログを有効にし、Google が返す error-codes フィールドを確認してください。
保護の堅牢性チェック
統合後は、システムが本当に自動化された操作からサイトを守れているか確認しましょう。
セキュリティと最適化のヒント
<b>Secret Key</b>はサーバー側のみに保存し、クライアント側には決して渡さないでください。
なぜ特定の検証が失敗したのかを把握できるように、エラーコード<b>(error-codes)</b>をログに記録してください。
フォーム下部に、ライセンス要件どおり<b>プライバシーポリシー</b>と<b>Google 利用規約</b>へのリンクを追加してください。
まとめ

すでにキャプチャや別の保護システムが導入されているサイトを引き継いだものの、コードにはアクセスできない場合でも心配はいりません!どの技術が使われているかを特定するのはそれほど難しくありません。動作が正しいか確認するには、隔離されたテスト環境で認識サービスCapMonster Cloudを利用し、トークン処理の仕組みと検証ロジックが正しく機能しているかをチェックできます。

reCAPTCHA V2の場合も、システムを特定し、その挙動を調べて、保護機能が正しく動いていることを確認すれば十分です。この記事では、reCAPTCHA V2を見分ける方法と、その導入や再設定に関する手順書の見つけ方を紹介しました。これにより、防御を安心して維持し、その動作をしっかりと管理できます。

Conclusion