plan-4ging

2026/03/24

reCAPTCHA とは

Google が提供する bot 対策サービス
フォーム送信やログインなどのアクションが「人間によるもの」か「bot(機械)によるもの」かを判定する仕組み

仕組み

ユーザーのブラウザ上での行動(マウスの動き・クリックパターン・閲覧履歴など)を Google が分析し、bot らしさをスコアリングする

ユーザー操作
 ↓
フロントエンド(reCAPTCHA トークン発行)
 ↓
バックエンド(Google の API にトークンを送信して検証)
 ↓
判定結果をもとに処理を分岐

v2 と v3 の違い

v2v3
ユーザー操作あり(チェックボックス)なし(完全に裏側で動く)
判定方式チャレンジ(画像選択など)スコアリング(0.01.0
UXやや煩わしいシームレス
実装比較的シンプルスコアに応じた分岐が必要

v2(チェックボックス型)

「私はロボットではありません」のチェックボックスをユーザーが押す形式
怪しいと判定された場合は画像選択などのチャレンジが追加で表示される

v3(スコアベース型)

ユーザーに何も操作させず、裏側でスコア(0.01.0)を返す
1.0に近いほど人間らしく、0.0に近いほど bot らしいと判定される

補足(reCAPTCHA 以外のアプローチ)

以下のような手法が用いられる

ハニーポット(Honeypot)

フォームに非表示のフィールドを設置する
人間には見えないため入力しないが、bot は自動的に入力してしまう
入力があれば bot と判定する

<!-- CSSで非表示にする(display:none は bot に検知されやすいため position で隠す) -->
<input type="text" name="hnp" style="position:absolute; left:-9999px;">

レートリミット(Rate limit)

同一 IP からの短時間での大量リクエストを制限する
シンプルで導入コストが低い

メール認証・SMS認証

登録後にメールや SMS で本人確認を行う
bot 対策としては重厚だが、確実性が高い