Google が提供する reCAPTCHA v3 を使用して、EC-CUBE の各フォームにセキュリティ認証を追加するプラグインです。
簡単な設定だけで導入でき、必要に応じてページ単位での有効/無効切り替えや、スコア判定・通信エラー時の挙動設定・テストモードなど、実運用に必要な機能を幅広く備えています。
必要な画面やフォームにだけ適用もできるため、運用負荷を抑えつつセキュリティを強化することが可能です。




- 会員ログインページ
- 購入ログインページ
- 新規会員登録ページ
- お問い合わせページ
- 注文手続きページ
- パスワード再発行ページ
- 管理画面ログインページ
- スコア判定基準
- reCAPTCHA バッジ表示・非表示
- 検証エラー時の許可設定
- 各フォームごとの有効/無効
Google reCAPTCHA でサイトを登録します。

フォームを送信後 サイトキー/シークレットキー が発行されます。それぞれコピーしてください。

- 当プラグインをインストール&有効化してください。
-
管理画面 > コンテンツ管理 > キャッシュ管理 より、キャッシュ削除 を行なってください。
-
管理画面 > 設定 > システム設定 > reCAPTCHA設定 より、①サイトキー、②シークレットキー を入力し、必要に応じて各項目を設定して保存してください。

①サイトキー:Google reCAPTCHA v3 から取得したサイトキーを入力してください
②シークレットキー:Google reCAPTCHA v3 から取得したシークレットキーを入力してください
③スコア判定基準:スコアがこの値未満の場合はbotと判定します(bot として判断された場合、スコアが低くなります)
④reCAPTCHA バッジを表示する:reCAPTCHA を使用するページ上にバッジを表示・非表示します
⑤reCAPTCHA 通信エラー時にフォーム送信を許可する:reCAPTCHA との通信エラー等が発生した場合に判定を行わず、フォーム送信を許可します(無効:フォーム送信を許可しない 有効:フォーム送信を許する)
⑥テストモードを有効にする:本番環境では使用しないでください。テストモードでは常に検証エラー(bot扱い)とし、reCAPTCHAの判定スコアをアラートに表示します(管理画面ログインページは除く)
⑦フロントページ設定:チェックを入れるとフロント各ページの reCAPTCHA 設定を有効にします。
⑧管理画面設定(管理画面ログイン):チェックを入れると管理画面の reCAPTCHA 設定を有効にします。
- 再度 管理画面 > コンテンツ管理 > キャッシュ管理 より、キャッシュ削除 を行なってください。
reCAPTCHA バッジを非表示にする場合は、規約文言を表示する必要があります。
次の方法で reCAPTCHA による認証を行うページに規約文言を表示するタグを配置してください。
{{ include('@BootechRecaptchaV341/default/recaptcha_badge_hidden_message.twig', { form: form }, ignore_missing = true) }}
管理画面 > コンテンツ管理 > ページ管理 の Recaptcha を使用する各ページ の コード から、下記の様にタグを配置してください。
※必ず <form></form> タグ内に配置してください。
<form method="post" action="{{ url('entry') }}" novalidate class="h-adr">
・・・
{{ include('@BootechRecaptchaV341/default/recaptcha_badge_hidden_message.twig', { form: form }, ignore_missing = true) }} {# この行を追加 #}
・・・
</form>
reCAPTCHA の認証失敗時にエラーを表示したい場合、エラー表示用テンプレートを配置してください。
{{ include('@BootechRecaptchaV341/default/recaptcha_error.twig', { form: form }, ignore_missing = true) }}
管理画面 > コンテンツ管理 > ページ管理 > お問い合わせ(入力ページ) の コード から、下記の様にタグを配置してください。
※必ず <form></form> タグ内に配置してください。
<form>
・・・
<div class="ec-borderedDefs">
・・・
</div>
{{ include('@BootechRecaptchaV341/default/recaptcha_error.twig', { form: form }, ignore_missing = true) }} {# この行を追加 #}
<div class="ec-RegisterRole__actions">
<div class="ec-off4Grid">
<div class="ec-off4Grid__cell">
<button type="submit" class="ec-blockBtn--action" name="mode" value="confirm">{{ '確認ページへ'|trans }}
</button>
</div>
</div>
</div>
</form>
{{ include ('@BootechRecaptchaV341/default/Mypage/recaptcha_error.twig', ignore_missing = true) }}
管理画面 > コンテンツ管理 > ページ管理 > 会員登録(入力ページ) の コード から、下記の様にタグを配置してください。
※必ず <form></form> タグ内に配置してください。
<form>
・・・
<div class="ec-registerRole__actions">
<div class="ec-checkbox{{ has_errors(form.user_policy_check) ? ' error' }}">
・・・
</div>
{{ include('@BootechRecaptchaV341/default/recaptcha_error.twig', { form: form }, ignore_missing = true) }} {# この行を追加 #}
<div class="ec-off4Grid">
・・・
</div>
</div>
・・・
</form>
{{ include('@BootechRecaptchaV341/default/Forgot/recaptcha_error.twig', { form: form }, ignore_missing = true) }}
管理画面 > コンテンツ管理 > ページ管理 > パスワード再発行(入力ページ) の コード から、下記の様にタグを配置してください。
※必ず <form></form> タグ内に配置してください。
<form>
・・・
<div class="ec-off4Grid">
<div class="ec-off4Grid__cell">
<button type="submit" class="ec-blockBtn--action">{{ '次へ'|trans }}</button>
{{ include('@BootechRecaptchaV341/default/Forgot/recaptcha_error.twig', { form: form }, ignore_missing = true) }} {# この行を追加 #}
</div>
</div>
・・・
</form>
管理画面 > コンテンツ管理 > ページ管理 > パスワード再発行(再設定ページ) の コード から、下記の様にタグを配置してください。
※必ず <form></form> タグ内に配置してください。
<form>
・・・
<div class="ec-registerRole__actions">
<div class="ec-off4Grid">
<div class="ec-off4Grid__cell">
<button class="ec-blockBtn--action" type="submit">{{ '登録する'|trans }}</button>
{{ include('@BootechRecaptchaV341/default/Forgot/recaptcha_error.twig', { form: form }, ignore_missing = true) }} {# この行を追加 #}
</div>
</div>
</div>
・・・
</form>
{{ include ('@BootechRecaptchaV341/default/Mypage/recaptcha_error.twig', ignore_missing = true) }}
管理画面 > コンテンツ管理 > ページ管理 > MYページ/ログイン の コード から、下記の様にタグを配置してください。
※必ず <form></form> タグ内に配置してください。
<form>
・・・
<div class="ec-login">
<div class="ec-login__icon">
<div class="ec-icon"><img src="{{ asset('assets/icon/user.svg') }}" alt=""></div>
</div>
{{ include ('@BootechRecaptchaV341/default/Mypage/recaptcha_error.twig', ignore_missing = true) }} {# この行を追加 #}
<div class="ec-login__input">
<div class="ec-input">
{{ form_widget(form.login_email, {'attr': {'style' : 'ime-mode: disabled;', 'placeholder' : 'common.mail_address', 'autofocus': true}}) }}
{{ form_widget(form.login_pass, {'attr': {'placeholder' : 'common.password' }}) }}
</div>
・・・
</form>
タグの配置は不要です
{{ include ('@BootechRecaptchaV341/default/Shopping/recaptcha_error.twig', ignore_missing = true) }}
管理画面 > コンテンツ管理 > ページ管理 > 商品購入 の コード から、下記の様にタグを配置してください。
※必ず <form></form> タグ内に配置してください。
<form>
・・・
<div class="ec-totalBox__btn">
<button type="submit" class="ec-blockBtn--action">{{ '確認する'|trans }}</button>
<a href="{{ url("cart") }}" class="ec-blockBtn--cancel">{{ 'カートに戻る'|trans }}</a>
</div>
{{ include ('@BootechRecaptchaV341/default/Shopping/recaptcha_error.twig', ignore_missing = true) }} {# この行を追加 #}
</div>
・・・
</form>
管理画面 > コンテンツ管理 > ページ管理 > 非会員購入情報入力 の コード から、下記の様にタグを配置してください。
※必ず <form></form> タグ内に配置してください。
<form>
・・・
<div class="ec-RegisterRole__actions">
<div class="ec-off4Grid">
<div class="ec-off4Grid__cell">
<button type="submit" class="ec-blockBtn--action">{{ '次へ'|trans }}</button>
{{ include ('@BootechRecaptchaV341/default/Shopping/recaptcha_error.twig', ignore_missing = true) }} {# この行を追加 #}
<a class="ec-blockBtn--cancel" href="{{ url('cart') }}">{{ '戻る'|trans }}</a>
</div>
</div>
</div>
・・・
</form>
タグの配置は不要です
ページ内に複数フォームがある場合、以下のように data-recaptcha-target="true" を付けたフォームのみが対象になります。
未指定の場合は従来通り全フォームに適用されます。
<form method="post" data-recaptcha-target="true">
...
</form>
- テンプレートをカスタマイズしている場合、表示位置の調整が必要になることがあります。
- カスタマイズを行なっている際は正常に動作しない可能性がございます。
- DB テーブル plg_bootech_recaptcha_v3_41_config を作成
- DB テーブル plg_bootech_recaptcha_v3_41_config に初期データを投入
- DB テーブル plg_bootech_recaptcha_v3_41_config を削除
デモ環境で動作をご確認いただけます。アクセス情報は下記をご参照ください。
※デモ環境は、EC-CUBEのデフォルト環境にプラグインをインストールし、有効化したのみの状態です。プラグインの仕様によっては、別途追加の設定が必要になる場合がございます。
4.3.x 系
フロント 管理画面 ログインID: administrator パスワード: password12345678
4.2.x 系
フロント 管理画面 ログインID: administrator パスワード: password12345678
4.1.x 系
フロント 管理画面 ログインID: administrator パスワード: password12345678
4.0.x 系
フロント 管理画面 ログインID: administrator パスワード: password12345678
- 毎日午前0時より数分間、システムメンテナンスを実施します。この間、初期化処理を行うため、設定情報がリセットされます。
- 事前の予告なしに、システムメンテナンスを実施する場合があります。
- デモ環境で不具合などを発見された場合は、サポートまでメールでご連絡ください。
プラグインのロジック変更や項目追加のほか、本体カスタマイズも承っております。お気軽にこちらまでご連絡ください。
EC-CUBE やシステム開発関連の情報発信をしています。詳しくは、Bootech 公式サイトをご覧ください。
EC-CUBE 4系のローカル環境構築プロジェクトの運営も行なっています。詳しくは、Docker for EC-CUBE 4をご確認ください。