自動化無しに生活無し

WEBとかAIとかLinux関係をひたすら書く備忘録系ブログ

独自ドメインのサイトにreCAPTCHAを実装させる方法と仕組み【ボット対策】

thumbnail

CAPTCHAとして特に名高いGoogleのreCAPTCHAを使用する。これで不正なアカウントの大量作成や、Selenium等のスクレイピングツールの使用をある程度制限させることができる。

reCAPTCHA実装までの流れ

  1. カードの登録を済ませたグーグルアカウントを用意
  2. 独自ドメインを取得してサイトに設定
  3. グーグルアカウントからreCAPTCHAを使用する
  4. サイトにreCAPTCHAのscriptタグ、フォーム用のdivタグを設置
  5. サーバー側にリクエスト送信時の処理を書く

GoogleのreCAPTCHAからGet Started with Enterpriseをクリック。クレジットカードの登録を済ませたアカウントが必要。

100万件までは無料で処理できるが、それ以上は課金されてしまう。

reCAPTCHAでボット対策ができる仕組み

  1. クライアントがreCAPTCHAの問題を解く
  2. reCAPTCHAの問題に正解した場合、Googleからコードが付与される
  3. クライアントがリクエストを送信する(コードが含まれている)
  4. サーバーはリクエストのボディ内に含まれているコードをGoogleにアクセスして判定
  5. Googleからサーバーへレスポンスが届き、サーバーはレスポンスの内容によって条件分岐する

問題に正解するとコードが付与され、サーバーはクライアントから送られたコードをGoogleに問い合わせることで真贋を確かめる。それで処理を分岐させる。

結論

reCAPTCHAのやっていることはとてもシンプル。問題を表示させ、正解すればコードを付与。サーバー側はコードをチェックして条件分岐しているだけ。

つまり、問題のパターンをいくらか用意してしまえば、自前でも似たようなボット対策のシステムを作ることはできると思われる。どうしてもreCAPTCHAが使用できない環境にある場合はそれも一考かと。

ただ、reCAPTCHAも万能ではない。ネット上にはお金さえ支払えば、reCAPTCHAの問題回答を人力で行う組織があるらしい。名の知れたCAPTCHAだけに対策はされているようだ。だからこそ、reCAPTCHAに頼りきりではなく、いかにして、ボットによる攻撃からサイトを守るのかを考える必要があると思う。

また、CAPTCHAがあるだけで離脱してしまうユーザーも一定数は存在する。例えば、会員登録画面でCAPTCHAを搭載すると、それだけで新規会員登録者数は減る。商用で運営しているサイトであれば、離脱は死活問題だろう。

スポンサーリンク

シェアボタン

Twitter LINEで送る Facebook はてなブログ