WHMCS
CaptchaLa 公式 WHMCS アドオンモジュール。コードを書かずに、WHMCS クライアントエリアへ CAPTCHA 検証を追加します — ログイン、新規登録、パスワード再設定、お問い合わせフォーム、チケット送信、カート決済。
単なる site-key ウィジェットとは異なり、すべてのチャレンジはサーバー発行・単回使用のトークン(リプレイ防止)に裏付けられ、第三者トラッカーは一切読み込みません。
保護対象
以下はそれぞれモジュール設定の独立したトグルです — 保護したい入口だけ有効にしてください。
- ログイン
- 新規登録
- パスワード再設定
- お問い合わせフォーム
- チケット送信
- カート決済
動作要件
- WHMCS 8.x と 9.x(8.3 および 9.0 のクライアントエリアでテスト済。
sixとtwenty-oneの両テーマで、Friendly URLs の有無を問わず動作) - PHP 8.0+(WHMCS 9.0 自体は PHP 8.2+ が必要)
- CaptchaLa アカウント —
dash.captcha.laで App Key + App Secret を取得
インストール
1. モジュールを入れる
- releases から最新の
whmcs-x.y.z.zipをダウンロードします。 - WHMCS ルートディレクトリに展開します。これにより
modules/addons/captchala/が追加されます。 - WHMCS 管理画面で Setup → Addon Modules を開き、CaptchaLa を見つけて Activate をクリックします。
2. 設定
Configure をクリックし、次を行います。
- App Key と App Secret を貼り付け。
- Widget mode と Theme を選択。
- 保護したいフォームを有効化。
- Save Changes をクリック。
管理サイドバーの CaptchaLa ページを開くと、ダッシュボードに対してライブ接続テストを実行できます。
TIP
有効化後にウィジェットが表示されない場合、一度モジュール設定を保存し直してください — WHMCS はモジュールが(再)有効化/保存されたときにのみ、そのモジュールの hooks.php を登録します。
設定項目
すべての設定は Setup → Addon Modules → CaptchaLa → Configure にあります。
| 設定項目 | 型 | 既定値 | 説明 |
|---|---|---|---|
| App Key | string | — | CaptchaLa ダッシュボードの公開キー。必須。 |
| App Secret | string | — | サーバーシークレット。トークンの発行と検証に使用。必須。ブラウザには露出しません。 |
| Widget mode | enum | popup | popup(トリガーバー → 全画面チャレンジ)、float(インラインパネル)、embed(インラインチェックボックス)、bind(不可視、送信を傍受)。 |
| Theme | enum | default | カラープリセット: default、dark、slate、emerald、amber、rose。 |
| Language | string | auto | BCP-47 コード(例: en、zh、de)または auto(ブラウザに追従)。 |
| Protect login | bool | on | クライアントエリアのログインにチャレンジを表示。 |
| Protect registration | bool | on | 新規アカウント登録にチャレンジを表示。 |
| Protect password reset | bool | on | パスワード再設定フォームにチャレンジを表示。 |
| Protect contact form | bool | off | お問い合わせフォームにチャレンジを表示。 |
| Protect ticket submission | bool | off | チケット送信の最終ステップにチャレンジを表示。 |
| Protect cart checkout | bool | off | カート決済にチャレンジを表示。 |
| Skip for logged-in users | bool | on | 既にクライアントセッションを持つ訪問者にはチャレンジを表示しない。 |
| Failure message | string | — | 検証失敗時に表示するメッセージ。 |
仕組み
各保護対象フォームのページで、モジュールはダッシュボードからそのフォームの action にスコープされた新しい**サーバートークン(sct_)を発行し、それに紐づけたウィジェットを描画します。訪問者がチャレンジを解くと、SDK は単回使用のパストークン(pt_)**をフォームに書き込みます。送信時、モジュールは WHMCS がフォームを処理する前にその pt_ をサーバー側で検証し、リプレイや action の不一致は拒否されます。
ダッシュボードに一時的に到達できない場合、モジュールはフェイルオープン(送信を通す)するため、上流の一時障害でクライアントエリアがロックアウトされることはありません。
FAQ
モジュールは無料ですか?
無料です。モジュールそのものは無料。CaptchaLa の無料プランで月 10,000 回の検証まで含まれ、それ以上の量が必要な場合のみ有料プランが必要になります。
WHMCS 8 と 9 の両方で動作しますか?
します — 8.3 および 9.0 のクライアントエリアで、six と twenty-one テーマ、Friendly URLs の有無を問わずテスト済です。
ウィジェットが表示されません。
一度モジュール設定を保存し直してください(Configure → Save Changes)。WHMCS はモジュールが(再)有効化/保存されたときにのみ hooks.php を登録します。
ソース
- モジュールリポジトリ:
github.com/Captcha-La/captchala-whmcs - 問題報告 / 機能要望: 上記リポジトリの issue へ
- 関連: Web SDK · PHP サーバー SDK · API リファレンス