botによるフォーム登録対策のGoogle reCAPTCHA

host/GCE
概要

Webサイトのフォーム入力がボットではなく、本当に人間が行っているかのテストをCAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart(完全に自動化された、コンピューターと人間を区別する公開 チューリングテスト )) と呼びます。

このCAPTCHAは一種のDoS攻撃への対策にもなり、不正アクセスの防止にもなります。今回、web.gnusocial.jpを会員機能を追加するにあたって、保安対策でGoogleが提供するCAPTCHAサービスのreCAPTCHAを試すことにしたので紹介します。

情報源
  1. reCAPTCHA | Google Developers
  2. CAPTCHAの仕組み | CAPTCHAの意味とは? | Cloudflare
  3. reCAPTCHAとは?必要性や効果、種類などを徹底解説 |マケフリ
内容

reCAPTCHAはGoogleが提供するCAPTCHAサービスです。

フォーム入力時に、「私はロボットではありません」というチェックボックスや、画像試験が表示されることがありますが、これがreCAPTCHAです。

現在利用可能なものは以下の4種類があるようです。

  1. v3: 機械学習による自動判別。
  2. v2: 「私はロボットではありません」というチェックボックス+画像試験。
  3. v2 invisible: 「私はロボットではありません」というチェックボックスを排除したもの。フォーム送信時に自動判定してbotっぽいなら画像試験。
  4. v2 Android

従来のv2だと、フォーム入力時に毎回画像試験が必要でユーザーには手間でした。ただ、最新のv3は機械学習で自動で判定するそうで、ユーザーの手間がかからないようです。

したがって、特に理由がなければv3が推奨されます。

reCAPTCHAはGoogle Cloudの一環で提供されており、月100万件のAPIアクセスまでは無料で利用できます (デベロッパー ガイド | reCAPTCHA | Google Developers料金 | reCAPTCHA Enterprise | Google Cloud)。

大規模サービスでもなく、個人事業レベルであれば、無料で十分利用可能に思います。

設定

reCAPTCHAについて理解したところで、実際に利用するための設定を行います。

1. 利用にあたって、Googleアカウントが必要なので、事前に取得しておきます。Google reCAPTCHA「reCAPTCHA」の画面を開きます。

2. [v3 Admin Console] を選びます。

3. [新しいサイトを登録する] 画面が表示されるのでフォームを入力して [送信] を選びます。

  • ラベル: 管理用の表示名。使用するサイト名などにするとよいでしょう。今回はGNU social JPとしました。
  • reCAPTCHAタイプ: 使用するreCAPTCHAバージョンを選びます。デフォルトのスコアベース (v3) のままでよいでしょう。
  • ドメイン: reCAPTCHAの利用ドメインを入力します。サブドメインにも適用されるのでルートドメインを指定します。今回はgnusocial.jpとしました。
  • Google Cloud Platform: Google Cloudのプロジェクトで管理されるようですので、任意のプロジェクトを指定しておきます。

4. [サイトにreCAPTCHAを追加する] 画面が表示されます。サイトキーとシークレットキーが表示されているので、これをコピーして、reCAPTCHAの利用実装に登録します。

この2種類のキーを取得できれば、一旦設定は完了です。

[アナリティクスに移動] を選ぶと [reCAPTCHA] が表示され、リクエストのレポートを確認できます。

こちらの画面の右上の [設定] ボタンからreCAPTCHAのキーをいつでも確認できます。

結論

Google reCAPTCHAとキーの取得方法でした。フォーム関係はサイバー攻撃の的になりやすいので、対策しておいたほうがよい気がします。

月100万回まで無料なのでありがたく使わせてもらうのがよいでしょう。

Comments

Copied title and URL