概要
Webサイトのフォーム入力がボットではなく、本当に人間が行っているかのテストをCAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart(完全に自動化された、コンピューターと人間を区別する公開 チューリングテスト )) と呼びます。
このCAPTCHAは一種のDoS攻撃への対策にもなり、不正アクセスの防止にもなります。今回、web.gnusocial.jpを会員機能を追加するにあたって、保安対策でGoogleが提供するCAPTCHAサービスのreCAPTCHAを試すことにしたので紹介します。
内容
reCAPTCHAはGoogleが提供するCAPTCHAサービスです。
フォーム入力時に、「私はロボットではありません」というチェックボックスや、画像試験が表示されることがありますが、これがreCAPTCHAです。
現在利用可能なものは以下の4種類があるようです。
- v3: 機械学習による自動判別。
- v2: 「私はロボットではありません」というチェックボックス+画像試験。
- v2 invisible: 「私はロボットではありません」というチェックボックスを排除したもの。フォーム送信時に自動判定してbotっぽいなら画像試験。
- 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万回まで無料なのでありがたく使わせてもらうのがよいでしょう。

詳細プロフィール。SNS: Twitter/[email protected]/[email protected]。2022-07-17からgnusocial.jpとweb.gnusocial.jpのサイトを運営しています。WordPressで分散SNSに参加しています。このアカウントの投稿に返信すると、サイトのコメント欄にも反映されます。自称ASD。
Comments