スパム対策リファレンス
読む時間: 7分 | 難易度: 初級

概要
カードテストは、WordPressの支払いフォームに対する最も一般的な自動化された不正行為です。ボットは、機能しているカードを見つけるために、1時間あたり数千もの盗難カード番号を送信します。WP Simple Payのスパム対策設定には、2つの補完的な防御策があります。
- CAPTCHA — Stripeに到達する前に自動送信を停止します。Google reCAPTCHA v3、hCaptcha、またはCloudflare Turnstileから選択できます。
- Eメール認証 — 設定可能な期間内に設定可能な回数の不正な拒否が発生した後、顧客にEメールアドレスを確認させるリアクティブレイヤーです。
両方のレイヤーは、WP Simple Pay > 設定 > 一般 > 🛡️ スパム対策の下で設定されます。
前提条件
- WP Simple Pay(CAPTCHAは無料版で利用可能)
- WP Simple Pay Pro(Eメール認証用)
CAPTCHA
スパム対策タブの上部にあるCAPTCHA設定により、なし、Google reCAPTCHA v3、hCaptcha、またはCloudflare Turnstileのいずれかのプロバイダーを選択できます。プロバイダーを選択すると、対応する認証情報フィールドが下に表示されます。
Google reCAPTCHA v3
Googleによるスコアベースの不可視CAPTCHA。顧客の操作は不要です。Googleは各リクエストを0.0(ボットの可能性が高い)から1.0(人間である可能性が高い)でスコアリングし、WP Simple Payはしきい値未満の送信をブロックします。
- サイトキー — reCAPTCHA管理コンソールからの公開認証情報。
- シークレットキー — reCAPTCHA管理コンソールからの非公開認証情報。
セットアップ: google.com/recaptcha/adminでサインアップし、reCAPTCHA v3(v2ではない)を選択し、ドメインを追加して、生成されたキーを貼り付けます。
hCaptcha
プライバシーに配慮したGoogle reCAPTCHAの代替。顧客が一度だけ解決する、表示されるチャレンジウィジェット。reCAPTCHAと同じデータ形式 — サイトキー + シークレットキー。
- サイトキー — hCaptchaダッシュボードから取得。
- シークレットキー — hCaptchaダッシュボードから取得。
セットアップ:hcaptcha.comでサインアップし、認証情報を取得して貼り付けます。
Cloudflare Turnstile
Cloudflareの無料、プライバシーに配慮したCAPTCHA。多くの場合非表示、時折インタラクティブ。同じ設定形式 — サイトキー + シークレットキー。
- サイトキー — Cloudflare Turnstileダッシュボードから取得。
- シークレットキー — Cloudflare Turnstileダッシュボードから取得。
セットアップ:cloudflare.com/products/turnstileでサインアップし、Turnstileウィジェットを作成してキーを貼り付けます。
プロバイダーの選択
| プロバイダー | コスト | 顧客の負担 | プライバシー | メモ |
|---|---|---|---|---|
| reCAPTCHA v3 | 無料 | なし(非表示) | Googleにデータを送信 | Googleサービスをすでに利用している場合のデフォルトとして最適 |
| hCaptcha | 無料/有料プラン | 低い(時折クリック) | プライバシーに配慮 | GDPRに準拠したreCAPTCHAの代替として良好 |
| Cloudflare Turnstile | 無料 | ほとんどなし | プライバシーに配慮 | Cloudflareをすでに利用している場合の最良の選択肢 |
一度に有効にできるプロバイダーは1つだけです。プロバイダーを切り替えるには、タブの上部にあるCAPTCHAの選択を変更してください。以前の認証情報は保存されたままですが、元に戻すまで無効になります。
メール認証
メール認証は、WP Simple Payが不正な支払い試行のパターンを検出した後にのみアクティブになる、受動的な防御策です。通常のトラフィックでは正規の顧客には見えず、攻撃中にのみ機能するように設計されています。
仕組み
- WP Simple Payは、Stripeからの
charge.failedWebhookでfraudulent(不正)の結果をリッスンします。 - 設定された期間内に、不正検出のカウントが設定されたしきい値を超えると、それ以降のすべてのオンサイト支払いフォームは、送信前にメール認証が必要になります。
- 顧客は、入力したメールアドレスに認証コードを受信します。支払い完了には、そのコードを入力する必要があります。
- 期間が経過し、それ以上の不正イベントが発生しなくなると、認証は自動的に無効になります。
設定
- メール認証(有効/無効) — マスター切り替え。有効のままにすることを強く推奨します。
- しきい値 — 認証が有効になるまでに必要な不正利用による却下回数。デフォルト: 3。
- 時間枠 — しきい値が測定されるウィンドウ(時間単位)。デフォルト: 6時間。
しきい値と時間枠の調整
デフォルト(6時間で3回の却下)は意図的に控えめに設定されており、通常のトラフィックの急増時に顧客を煩わせることなく、明らかなカードテストを検出します。
- 以前に標的にされたことがあり、より迅速な対応を望む場合は、しきい値を下げる(例:
2回の却下)。 - サイトのトランザクション量が多く、6時間の履歴では新しい攻撃を隠蔽してしまう可能性がある場合は、時間枠を下げる。
- トラフィックが非常に多く、デフォルト設定が通常のノイズでトリガーされる場合は、しきい値を上げる。
CAPTCHAとメール認証の連携方法
これら2つのレイヤーは、冗長ではなく補完的です。
- CAPTCHAはすべての送信で実行され、Stripeに到達する前にボットをブロックします。
- メール認証は、CAPTCHAがバイパスされた場合(例: 人間による攻撃)で、不正利用による却下が既に蓄積されている場合にのみ、事後に実行されます。
最良の結果を得るには、両方を有効にしてください。CAPTCHAは自動化された不正利用の99%を低コストで処理し、メール認証はそれをすり抜けた1%を検出します。
フォームビルダーのスパム対策
グローバル設定に加えて、個々のフォームはフォームエディタの一般タブでメール認証をオプトインできます。これは、グローバルなしきい値に達したかどうかに関わらず、常に認証を必要とする高リスクのフォーム(例: 少額寄付フォーム)がある場合に便利です。
よくある質問
顧客はすべてのフォームでCAPTCHAを目にしますか?
reCAPTCHA v3とCloudflare Turnstileは通常非表示であり、ほとんどの顧客はチャレンジを目にすることはありません。hCaptchaは、1回のクリックが必要な小さなウィジェットを表示します。通常の条件下では、どれも正規の顧客をブロックしません。
「reCAPTCHA」ではなく「🛡️ スパム対策」と表示されるのはなぜですか?
hCaptchaとCloudflare Turnstileのサポートが追加された際に、タブの名前がreCAPTCHAからスパム対策に変更されました。古いドキュメントではreCAPTCHAという名前が残っている場合がありますが、根本的な設定は同じです。
Stripe Checkout(オフサイト)フォームではCAPTCHA設定は尊重されますか?
CAPTCHAは、Stripe Checkoutへのリダイレクト前にWordPress側で強制されます。Stripeのホストページにも独自のボット対策があります。オンサイトフォーム(埋め込み/オーバーレイ)の場合、CAPTCHAは支払い作成前に各送信を検証します。
メール認証がある場合、CAPTCHAは必要ですか?
どちらも異なる目的を果たします。CAPTCHAはボットをブロックします。メール認証は、攻撃者がCAPTCHAを解決できるものの、多くの実際のメール受信ボックスにアクセスできない人間によるカードテストをブロックします。サイトでかなりの量の支払いトランザクションを処理する場合は、両方を使用してください。
時間枠が終了した後、認証コードはどうなりますか?
期限切れのコードは、スケジュールされたタスク(simpay_cleanup_email_verification_codes)によってクリーンアップされます。自動的に無効化され、再利用できなくなります。
特定のフォームをスパム対策から除外できますか?
はい。フォームごとの一般設定タブの設定を参照してください。必要に応じて、フォームごとにグローバルな動作を上書きできます。
次にやること
- 支払いフォームの一般設定の構成方法 – フォームごとのスパム対策の上書き
- 支払い処理前のメール認証の有効化方法 – スクリーンショット付きのウォークスルー
まだ質問がありますか?私たちが喜んでお手伝いします!
最終更新日: