2024年4月1日からGoogle reCAPTHAの料金体系が大きく変わることになりました。
具体的にはGoogle reCAPTHAの月間リクエスト数が100万件から1万件に削減され、さすがに1万リクエストではある程度の規模のサイトだと足りない恐れがあります。
そこで同じようなbot判定サービスを提供しているCDNで有名なCloudflare Turnstileにサービス切り替えを行っていきます。
そもそもGoogle reCAPTHAのサービスとは
実際に移行する前に、本当に移行が必要かどうかは十分検討してください。
コスト面で難しい状況になったため乗り換えを行いますが、Google reCAPTHAそのものは素晴らしいサービスであることをお断りしておきます。
ちなみに僕自身は当サイトも含め、管理・運営しているサイトの90%以上で既にCloudflare Turnstileに乗り換えを実施しています。
リクエスト数
実際のリクエスト数はGoogle reCAPTHAのダッシュボードから確認できます。
例えばこの画像は2023年11月5日~11月11日までの1週間、僕のとあるサイトのGoogle reCAPTHAリクエスト数です。
ざっくり1日おおよそ1万件程度の水準でリクエスト枠を消費しています。
つまり、月間1万件という上限は1日足らずで達してしまうことになりとても足りません。
無料枠超過分の扱い
僕たち個人ブロガーが使用しているGoogle reCAPTHAはいわゆる無料のreCAPTCHAと呼ばれるものです。
どれだけリクエストが飛んでも基本的に追加費用はかかりません。
ただし、今までは月間100万リクエストを超過すると常に0.9というスコアが返されるようになります。
reCAPTCHAはリクエストに対しbotの可能性を数字で判断し、一定のしきい値を超えるとbotかどうかの追加判定(画像クリックしてバスを選んでね、のやつ)を促します。
1.0に近いほど安全である可能性が高く、0.0に近いほど安全ではない可能性が高くなります。
つまり100万リクエストを超えると「うーん、なんか来たけど今月いっぱい働いたしな。せや!たぶんセーフやろ!はい0.9!」とbotかどうかに関係なく「たぶん安全だよ」というスコアを返す、全く役に立たなくなる訳です。
現時点では今のこの形態が引き継がれるのかどうか不明です。
- 月間1万リクエスト超過分は常にスコア0.9を返す
- 月間1万リクエスト超過分に対して費用がかかる
どちらになるか分からないので、月間リクエスト数をチェックしておくことは必須です。
ちなみに現時点では現状通り、1万件を超えた場合実質認証を放棄するようになると予想しています。つまり何の役にも立たなくなります。
移行しなくてもいい人
月間1万リクエストを超えている、もしくは現時点で迫っている方は移行を検討すべきでしょう。
では移行をしなくても良い人はというと、Google reCAPTHAのリクエスト頻度が極端に低い方です。
僕の読者はWordPressユーザーが多いのでそれをメインに考えると、
- コメント欄を閉鎖しているためreCAPTHCA使用がフロントページでほとんど無い
- ログインURLを標準にwp-adminやwp-login.phpから変更しているためアクセスがほとんど無い
というような方々です。
このような設定を行っている方はreCAPTCHAのリクエスト数が月間数十件~数百件程度と新無料枠に収まる可能性が高いです。
しかしプラグインの設定等で、コメント欄を閉鎖しているしログインURLも変更しているけど何故かサイト全体にreCAPTCHAがかかっているという方もいます。
やはりGoogle reCAPTHAのダッシュボードから実際のリクエスト数を確認しておくことが重要です。
代替サービス
この後Cloudflare Turnstileを使用できるよう解説しますが、実はreCAPTCHAには代替サービスがいくつかあります。
他にも企業向け等を考慮するともっと選択肢はありますが、個人ブロガーが採用するならGoogle reCAPTHAかCloudflare Turnstileとこの2つぐらいかなあと思います。
Cloudflare Turnstile
Cloudflare TurnstileはCDNで有名なCloudflareが提供するサービスです。
Google reCAPTHAと同じようにbot判定を行い、疑わしいアクセスに対しては追加の判定を要求することでプログラムを使ったフォーム等への自動攻撃を防ぐ役割を担ってくれます。
Cloudflare Turnstileの概要
- リクエスト数無制限(100万件との情報もあるが公式にソースが見つからない)
- Turnstile Freeプランなら無料
- WordPressサイトならプラグインで簡単に導入可能
- Google reCAPTHAより読み込み速度が早い
基本的に現在のGoogle reCAPTHAと同じように意識すること無く利用でき、Google reCAPTHAと比較して読み込み速度が早い傾向にあります。
bot対策 | 転送量 | 読み込み速度(ページ全体) |
---|---|---|
なし | – | 約300ms |
Google reCAPTCHA | 約600キロバイト | 約450~550ms |
Cloudflare Turnstile | 約180キロバイト | 約350~450ms |
実際に手元で計測したところ、Google reCAPTHAで認証が完了するまでの転送サイズは約600キロバイト、Cloudflare Turnstileは180キロバイトでした。
ページ全体の読み込み速度もおおよそ100msほど早くなっています(ただしこちらはCAPTHA解決までの時間ではなく、あくまで読み込み速度ベース)。
Cloudflare Turnstileを採用するデメリット
明確なデメリットは正直見当たりませんが、強いて言えばWordPressユーザーの場合プラグインの乗り換え等が必要になります。
しかし月間1万リクエスト上限が始まる4月1日以降、1万件を超えるリクエストが事実上無効化さえるか有料化されるかどちらかだと思うのでどのみち上限を超えるなら対策が必要です。
Cloudflare Turnstileの登録・設置
それではCloudflare Turnstileの登録と設置を行っていきます。
登録
- Step. 1登録
まずはCloudflareに登録します、登録ページを開いてメールアドレス・パスワードの入力して登録してください。
もし言語が英語になっている場合、右上のEnglishをクリックして日本語に変更できます。
登録が完了するとCloudflareからEメールが届きます。
本文にEメール認証のURLが記載されているので、アクセスして認証をしておいてください。
メール認証が終えるとサンクスページが表示されるので、左上の「Cloudflare」のロゴをクリックしてダッシュボードを開いておいてください。
- Step. 2Turnstile認証
Cloudflare Turnstileに必要なサイトキーの登録を行います、ダッシュボード左側のメニューよる「Turnstile」を開きます。
サイトを追加ボタンをクリックし、サイト名とドメインを入力します。
ウィジェットモードは3種類ありますが、基本的にデフォルトの「管理対象」を選んでおけばOK。
登録が完了するとサイトキーとシークレットキーが表示されます、後ほど使うのでこのままページを開いておくかどこかにメモしておいてください。
Webサイトに追加(WordPress)
それでは自分のサイトにCloudflare Turnstileを導入しておきます。
既にGoogle reCAPTHAが動いているなら止めておいてください、多くの方はGoogle reCAPTHA用のプラグインを入れているはずなので無効化すればOK。
また、Contact Form 7を使っている場合Contact Form 7自体にもGoogle reCAPTHAの設定があるのでこちらも設定を削除しておきましょう。
- Spte. 1Simple Cloudflare Turnstileをインストール
Cloudflare Turnstileの導入にはSimple Cloudflare Turnstileというプラグインを使うのが手っ取り早いです。
- 標準のログイン・ユーザー登録・パスワードリセット・コメント欄対応
- Contact Form 7やWooCommerce、WPForms等にも対応
- スクリプト遅延読み込み機能有り
開発もアクティブであり、WordPressサイトに導入するなら現状これ一択です。
インストール、有効化してください。
- Step. 2サイトキーとシークレットキー入力
有効化が完了したら設定->Cloudflare Turnstileを開きます。
まずは先程作成したサイトキーとシークレットキーをコピー&ペーストして入力してください。
言うまでもありませんが、これらのキーは誰かに教えたりネット上に掲載したりしないでくださいね。
- Spte. 3基本設定
続いて基本設定を行いますが、特にこだわりがなければデフォルトの状態でOKです。
「送信ボタンを無効化」にチェックを入れると認証が完了するまで送信ボタンが無効化されるのでほんの少しセキュリティ的に良いかも知れません。
- Step. 4高度な設定
高度な設定欄には3つほどメニューがありますが、「スクリプトの遅延読み込み」だけチェックを付けておけば良いです。
このチェックをつけることでCloudflare Turnstileのスクリプトをdefer要素を追加して遅延読み込みしてくれます。
<!-- チェックなし --> <script type="text/javascript" src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit" id="cfturnstile-js"></script> <!-- チェックあり --> <script type="text/javascript" src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit" id="cfturnstile-js" defer="defer" data-wp-strategy="defer"></script>
ただしWordPressプラグイン等で高速化設定を行っている場合にバッティングする可能性があります。
明らかに挙動がおかしい場合はチェックを外してください。
- Step. 5反映フォーム選択
Cloudflare Turnstileをどのフォームに反映させるか選択します、基本的には全部つけておけば良いです。
ただしコメント欄を明確に使っていない、そもそもコメント欄が無い場合はフロントページで読み込む必要が無いのでWordPressコメントのチェックを外しておきましょう。
プラグインが対応している他のプラグインがインストールされている場合、追加で設定タブが表示されます。
- Contact Form 7
- WooCommerce
- WPForms
- Elementorフォーム
- BuddyPress
- bbPress
以上は一例ですが、様々なフォームに設定できるためもし表示されていれば使用すると良いです。
ちなみにContact Form 7の場合は表示されている
[cf7-simple-turnstile]
をContact Form 7のタグの中に埋め込めばOKです。 - Step. 6変更を保存&疎通テスト
最後に変更を保存ボタンをクリックします。
更新されたページの上部に疎通テストを促すボックスが表示されるので、応答テストをクリックします。
テストが完了すると成功!と表示されます。
設定お疲れ様でした。
- Step. 7確認
実際に稼働しているかどうかチェックするために、コメント欄を見てみるか一度ログアウトしてログインフォームをチェックしてみましょう。
このような表示がされていれば正常に稼働しています。
また、稼働後しばらくするとCloudflareのTurnstileタブで実際にリクエストされた回数、解決率等のチェックが行なえます。
Google reCAPTHAの無料枠大幅減に伴いCloudflare Turnstileに乗り換え まとめ
Google reCAPTHAの無料枠変更に伴い今後ますますCloudflare Turnstileを利用する人数が増えていくと思います。
Cloudflare Turnstileは執筆時現在最大10サイトまで登録できるので一度登録方法を覚えてしまえば別途サイトを立ち上げる時でも安心。
まだGoogle reCAPTHAの4月1日以降の詳細ができっていない(少なくとも無料枠超過後が事実上認証を行わないのか追加料金なのか分からない)ですが、かなり縮小されることは間違いないので後から慌てないように今のうちに実装しておくことをおすすめします。
導入にあたって不明な点等はコメント欄よりお知らせください。
コメント