Joomla!にExtensionのConvert Formsを導入し、Google reCAPTCHAを利用します。
Summary
- Convert FormsはJoomla!に問い合わせフォームを構築するExtensionです
- Google reCAPTCHAはボットによるスパムや不正行為から保護するサービスです
- 現在の問い合わせフォームと入れ替え、フォームのカスタマイズに強いConvert Formsを導入し、合わせてGoogle reCAPTCHAを「簡単に」追加します
- なお、Joomla!コアには[CAPTCHA - Invisible reCAPTCHA]というPluginが同梱されていたのですが、Joomla! 5.2以降同梱されなくなったそうです(下記参照Dより)
- また、Convert Forms導入前のコア同梱のContactフォームもスパムに利用される「投稿者アドレスへのフォーム内容返信機能」はデフォルトで[非表示]となっており、それなりのスパム対策は取られています
Reference
- Tassos Marinos | Convert Forms
- Convert Formsを提供しているオフィシャルサイトです
- Google reCAPTCHA
- Google Cloud | reCAPTCHA
- github | nikosdion / plg_captcha_google
- Joomla! 5.2以降コアからGoogle Invisible reCAPTCHAが同梱されなくなったことに伴い、nikosdion氏から提供されたプラグインです
- 今回は使用を見送っています
Google reCAPTCHA
Pricing Tier
- Google reCAPTCHAはEssentials, Standard, Enterprise3つの料金ティアが用意されています
- Essentialsは1 か月あたり最大 10,000 件の評価まで無料です
- 当サイト程度であれば相当に余りあるほど十分な条件です
Features
- Google reCAPTCHAの機能をオフィシャルサイトから代表的な5項目を列挙します(同ページには合計18の機能の説明があります)
- 高度なbotとオンライン不正の検出
- アカウントの乗っ取りや不正なユーザーからの保護
- スムーズなユーザー エクスペリエンスを損なわないbotの軽減
- SMS通信不正利用攻撃に対するオンライン詐欺防止
- 不正取引からの保護
- 今回Contactフォームに上記のAとCの機能を利用し、botによる攻撃を防御します
Google reCAPTCHA Type
- 現時点(2025/10)で、Web用の場合3つのタイプが用意されています
- スコアベース (v3): 内部でリスクスコア判定を行いユーザーの許可やブロックなどを実施します.Googleの推奨タイプです
- スコアベース (v2)
- 「私はロボットではありません」チェックボックス: ユーザーにチェックボックスの操作を求めます
- 非表示 reCAPTCHA バッジ: チェックボックスは非表示ですが、スコア分析によりリスクが高い場合チャレンジ(チェックボックスや画像選択)が表示されます
- Google Cloud | reCAPTCHA のドキュメント
- Googleはアクセシビリティやユーザビリティの観点からスコアベース (v3)の使用を強く推奨しています
- 実際、チェックボックスや画像選択を見ることはなくなってきてます
- フジテレビのネプリーグ「私はロボットではありませんクルーズ」くらいでしょうか
- 当サイトもスコアベース (v3)一択です
- 実際、チェックボックスや画像選択を見ることはなくなってきてます
Steps
- 詳細な手順がConvert Formsのオフィシャルサイトに用意されています
- Google reCAPTCHAの管理画面にて2つのreCAPTCHA Keyを生成します
- Googleアカウントが必要です
- Joomla!にConvert Formsエクステンションをインストールします
- Convert Formsの設定画面に2つのreCAPTCHA Keyを登録します
- Convert Formsにてフォームを作成し、reCAPTCHAフィールドを登録します
- MenuよりContactページを作成します
- 今回はフォームだけの単一ページ作成を選択しましたが、モジュールとして使用する選択もあります
Creating a reCAPTCHA key
- Google reCAPTCHA Admin Consoleへアクセスします
- Googleアカウントによるログインが必要です
- 初回ログインの場合、サイトの登録画面が表示されます
- サイト登録
- ラベル: わたくしはドメイン名を入力しました
- reCAPTCHAタイプ: スコアベース(v3)を選択します
- ドメイン: ドメインを入力します
- [送信]をクリックします
- ページ遷移後、しばらく待つと[設定が完了しました。]と表示されます

- 同ページに表示されているreCAPTCHA Key[サイトキー]と[シークレットキー]をConvert Formにセットします
- reCAPTCHA Keyはコンソールにて後から確認できます
Installing "Convert Forms"
- オフィシャルサイトから最新ファイルをダウンロードします

- [Get started for free]をクリックすると、メールアドレスの入力を求められ、メールにてダウンロードリンクが通知されます
- System > Install > Extensions
- Upload Package File tab > Upload & Install Joomla Extension

- ダウンロードしたパッケージファイル(zip形式)をドロップするとインストールされます
"Convert Forms" Configuration
- Compornents > Convert Forms > Dashboard > Option btn

- Dashboard > System > Global Configration > Convert Forms でも構いません
- reCAPTCHA tab > reCAPTCHA blk

- reCAPTCHA v3まで下方にスクロールします

- Site Key: Google reCAPTCHA コンソールで確認したサイトキーをコピペします
- Secret Key: 同じくGoogle reCAPTCHA コンソールで確認したシークレットキーをコピペします
- Save & Close
Creating Contact Form
- Convert Formsを使用して新たなContact Formを作成します
- Components > Convert Forms > Form btn

- + New

- Convert Forms Library > Contact Form > Insert


- Form pane > Add Field / All Fields / Option tab
- Form btn > Form pane> Add Field > Advanced Fields > reCAPTCHA
- Save
- 作成後のFormは[Unpublished]の状態のため、[Published]に変更します

Creating "Contact Us" Page
- 上記手順で作成したContact Formをメニューに組み込みます
- 下記は新規作成時の当サイトにおける手順です
- わたくしはすでにJoomla!コア同梱のContactフォームにてメニューを設置済だったため、[Menu Item Type]の変更のみ行っています
- Menus > Main Menu > + New
- 各フィールドを入力又は指定します
- Title: Contact US
- Menu: Main Menu
- Parent Item: -About
- 最上位階層のAbout配下にしました
- Details tab > Menu Item Type > Select btn

- Menu Item Type dlg > Convert Forms > Form



- Option tab

- Options blk > Select Form > 作成したFormが複数ある場合は選択します
- Formが単一の場合、この手順は不要です
- Save & Close
- Contactフォームの完成です

Trigger for setting up Convert Forms
- Convert Formsを導入しGoogle reCAPTCHAを利用することとなった切っ掛けは、MX TOOLBOXでDMARCの検証を行った際、当方サーバーがブラックリストのUCEPROTECTL3に追加されている旨の指摘があったことでした
- 「何も悪いことしていないのに…」「当サイトの問い合わせフォームが踏み台になったのか」と知識のない時点ではビビったものです
- ただし、当方サーバーのIPアドレスをUCEPROTECTで確認するとUCEPROTECTL3すなわちUCEPROTECTL-Level3への[LISTED]はASN単位(プロバイダーなど)が対象であり、Level1の当方サーバーのIPアドレスについては[NOT LISTED]とLvel2のCIDR表記/20のアドレス範囲も[NOT LISTED]でした
- また、同ページの下部には次の説明もございます
As you should know now: It is not you, it is your complete provider which got UCEPROTECT-Level3 listed.
ご存知のとおり、UCEPROTECT-Level3 にリストされているのはあなたではなく、あなたのプロバイダー全体です。(Google翻訳)UCEPROTECT Spam Database Query
- Level3の解説ページには次のような説明があります。
To get escalated to Level 3 is almost always an indicator, that providers don't act fast enough on abusers.
レベル 3 にエスカレーションされるということは、ほとんどの場合、プロバイダーが不正使用者に対して十分な速さで対応していないことを示しています。(Google翻訳)UCEPROTECT NETWORK | UCEPROTECT Blacklist Policy LEVEL 3 - UCEPROTECTの評判はさておき、「XServerの対応次第」であるならば、個人であるわたくしは静観し、今後もLevel1でLISTEDされないようにスパム対策をとるだけです。


