反垃圾邮件参考
阅读时间: 7 分钟 | 难度: 初级

概述
卡片测试是针对 WordPress 付款表单最常见的自动化滥用形式——机器人每小时会提交数千张被盗的卡号,以找出哪些仍然可用。WP Simple Pay 的反垃圾邮件设置为您提供了两种互补的防御措施:
- CAPTCHA — 在提交到 Stripe 之前阻止自动化提交。您可以在 Google reCAPTCHA v3、hCaptcha 或 Cloudflare Turnstile 之间进行选择。
- 邮箱验证 — 一个被动的层,要求客户在可配置的时间范围内发生可配置次数的欺诈性拒绝后确认其电子邮件地址。
这两个层都在WP Simple Pay > 设置 > 常规 > 🛡️ 反垃圾邮件下进行配置。
先决条件
- WP Simple Pay(免费版本提供 CAPTCHA 功能)
- WP Simple Pay Pro 用于邮箱验证
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,这是最佳选择 |
您一次只能启用一个提供商。要切换提供商,请更改选项卡顶部的 CAPTCHA 选择 — 之前的凭据将保持保存状态,但在您切换回之前不会激活。
电子邮件验证
电子邮件验证是一种被动防御措施,它仅在 WP Simple Pay 检测到欺诈性付款尝试模式之后激活。它的设计目的是在正常流量下对合法客户隐形,并且仅在攻击期间启动。
工作原理
- WP Simple Pay 会监听来自 Stripe 的具有
fraudulent结果的charge.failed网页钩子。 - 当在配置的时间范围内,欺诈性拒绝的数量超过您配置的阈值时,所有后续的站内付款表单在提交前都需要进行电子邮件验证。
- 客户会收到他们输入的电子邮件地址的验证码。他们必须输入验证码才能完成付款。
- 一旦时间范围过去,并且没有进一步的欺诈事件,验证将自动禁用。
设置
- 电子邮件验证(启用/禁用) — 主开关。强烈建议保持开启。
- 阈值 — 激活验证前所需的欺诈性拒绝次数。默认值:3。
- 时间范围 — 衡量阈值的窗口(以小时为单位)。默认值:6 小时。
调整阈值和时间范围
默认设置(6 小时内拒绝 3 次)是故意保守的 — 它们可以捕获明显的信用卡测试,而不会在正常的流量高峰期打扰客户。
- 如果您以前是攻击目标,并且希望更快地做出反应,请降低阈值(例如,
2次拒绝)。 - 如果您的网站交易量很大,并且 6 小时的数据会掩盖新的攻击,请缩短时间范围。
- 如果您流量非常大,并且默认设置会因正常噪音而触发,请提高阈值。
验证码和电子邮件验证如何相互作用
这两个层是互补的,而不是冗余的:
- 验证码在每次提交时运行,并在机器人到达 Stripe 之前将其阻止。
- 电子邮件验证在事后运行,仅在验证码被绕过(例如,通过人为攻击)并且欺诈性拒绝已累积时才运行。
为获得最佳效果,请同时启用两者。验证码以较低的成本处理 99% 的自动滥用;电子邮件验证可捕获通过的 1%。
表单生成器中的反垃圾邮件
除了全局设置外,还可以通过表单编辑器的常规选项卡为单个表单选择启用电子邮件验证。当您有一个高风险表单(例如,小型捐赠表单)并且始终希望对其进行验证时,这很有用,无论是否已达到全局阈值。
常见问题解答
客户会在每个表单上看到验证码吗?
reCAPTCHA v3 和 Cloudflare Turnstile 通常是不可见的 — 大多数客户从未看到挑战。hCaptcha 显示一个需要单击一次的小部件。在正常情况下,它们都不会阻止合法客户。
为什么我看到“🛡️ 反垃圾邮件”而不是“reCAPTCHA”?
在添加了 hCaptcha 和 Cloudflare Turnstile 支持后,该选项卡已从reCAPTCHA 重命名为反垃圾邮件。reCAPTCHA 名称在一些旧文档中仍然存在;底层设置是相同的。
Stripe Checkout(站外)表单是否会遵循验证码设置?
在重定向到 Stripe Checkout 之前,验证码会在 WordPress 端强制执行。Stripe 的托管页面也有自己的机器人保护措施。对于站内表单(嵌入式/覆盖式),验证码会在创建付款之前验证每次提交。
如果我有电子邮件验证,还需要验证码吗?
两者服务于不同的目的。验证码会阻止机器人。电子邮件验证会阻止攻击者可以解决验证码但无法访问许多真实电子邮件收件箱的人工信用卡测试。如果您的网站处理大量付款,请同时使用两者。
时间范围结束后,验证码会怎样?
过期的代码由计划任务(simpay_cleanup_email_verification_codes)清理。它们会自动失效,无法重复使用。
我可以豁免特定表单免受垃圾邮件防护吗?
可以 — 请参阅每个表单的常规选项卡设置。如有需要,您可以针对每个表单覆盖全局行为。
下一步是什么?
- 如何配置付款表单的常规设置 – 按表单的垃圾邮件防护覆盖设置
- 如何在处理付款前启用电子邮件验证 – 带屏幕截图的演练
仍有疑问?我们随时为您提供帮助!
最后修改时间: