登录页 CAPTCHA 提供商对比:Casdoor 中的 reCAPTCHA、hCaptcha、Turnstile、GeeTest 和阿里云验证码
对于全球互联网上的大多数登录和注册页面,Cloudflare Turnstile 是最简单的选择:免费套餐对挑战次数没有上限,且其默认模式仅向高风险访客显示复选框。如果您的许多用户位于中国大陆,请改用阿里云验证码或 GeeTest,因为 Cloudflare 表示 Turnstile 在中国大陆不受支持。如果您需要验证码在不依赖任何外部服务的情况下工作,请使用 Casdoor 的内置图像验证码。Casdoor 支持所有这些方案,以及 Google reCAPTCHA(v2 和 v3)和 hCaptcha,作为 验证码提供商,您可以按应用设置验证码出现的时间。
对比
以下价格和可用性信息已于 2026-11-02 对照各供应商官网进行核实。若供应商未公布具体数字,表格中会注明,而非猜测。
| 提供商 | 用户所见内容 | 隐形模式 | 数据与隐私 | 免费套餐与定价 | 中国大陆支持情况 | Casdoor 类型 |
|---|---|---|---|---|---|---|
| Casdoor 默认 | 从图像中输入五个数字 | 无 | 由您的 Casdoor 服务器生成并验证;无第三方参与 | 免费,包含在 Casdoor 中 | 可用,无需外部调用 | Default |
| Google reCAPTCHA v2 | 复选框;部分用户会遇到图像挑战 | v2 也提供隐形变体,仅对可疑流量发起挑战 | Google;设置 _GRECAPTCHA cookie 以进行风险分析 | Essentials 层级每个组织每月最多 10,000 次评估免费;Premium 层级前 100,000 次固定收费 $8,之后每 1,000 次 $1 | Google 建议在无法访问 www.google.com 时使用 www.recaptcha.net | reCAPTCHA, reCAPTCHA v2 (checkbox) |
| Google reCAPTCHA v3 | Nothing; returns a score (Casdoor rejects scores below 0.5) | Yes | Same as v2 | Same as v2 | Same as v2 | reCAPTCHA v3 |
| hCaptcha | 免费套餐显示带图像挑战的复选框 | Pro 版提供被动模式(“99.9% 被动”),Enterprise 版提供无 CAPTCHA 模式 | 声明免费套餐符合 GDPR、CCPA、LGPD 和 PIPL;获得 EU-U.S. Data Privacy Framework 认证 | Basic 版免费;Pro 版每月 $139(或按年计费每月 $99),包含 100,000 次评估,之后每 1,000 次 $0.99;Enterprise 版需联系销售 | hCaptcha 未记录相关说明 | hCaptcha |
| Cloudflare Turnstile | Managed 模式仅在必要时显示复选框 | Non-interactive 和 Invisible widget 模式 | Cloudflare 声称仅处理严格必要的数据,不读取表单条目;无需使用 Cloudflare 代理 | 免费套餐:无限挑战,最多 20 个组件;Enterprise 版需联系销售 | Cloudflare:“不支持中国大陆” | Cloudflare Turnstile |
| GeeTest CAPTCHA v4 | 一键点击、滑块拼图、文字点击、消消乐 | v4 产品页未列出 | 中国供应商;特定于产品的隐私政策 | 无公开价格列表;30 天免费试用,之后需联系销售 | 中国供应商 | GEETEST |
| Alibaba Cloud Captcha 2.0 | 一键点击、滑块、拼图、图像复原 | Standard 和 Enterprise 版本提供无痕模式 | 运行于阿里云 | 按量付费:中国大陆每次调用 0.005 CNY,境外每次 0.007 CNY;也提供订阅版本和资源包 | 支持;Casdoor 针对上海区域端点进行验证 | Aliyun Captcha |
关于 reCAPTCHA 行的两点说明。Google 已将 reCAPTCHA 并入 Google Cloud Fraud Defense,分为 Essentials、Premium 和 Enterprise 层级,且 10,000 次免费评估额度在整个 Google Cloud 组织中共享。Casdoor 通过标准的 siteverify 端点,使用 site key 和 secret key 与 reCAPTCHA 通信,并且浏览器脚本和服务端验证均从 recaptcha.net 加载,而非 google.com。
如何选择
全球 SaaS
建议从 Cloudflare Turnstile 开始。免费套餐不对挑战次数计量,Managed 模式使大多数用户无需点击任何内容,且您无需将网站路由至 Cloudflare。如果您已在使用 Google Cloud 并希望利用 reCAPTCHA 的风险信号,reCAPTCHA 也是不错的选择,但需注意 10,000 次免费评估的限制:繁忙的登录页面或短信轰炸攻击可能在一天内耗尽该额度。hCaptcha 是另一个常见选择;其免费套餐始终显示挑战,而被动模式为付费功能。
拥有中国大陆用户的 App
根据 Cloudflare 官方文档,Turnstile 不适用。对于 reCAPTCHA,Google 文档指出当 www.google.com 不可达时应使用 www.recaptcha.net 域名,Casdoor 已采用此域名,但在依赖它之前,您仍应从用户网络进行测试。hCaptcha 未发布关于中国大陆的声明,因此适用同样的建议。
两个稳妥的选择是 Alibaba Cloud Captcha 和 GeeTest。阿里云公布了每次调用的价格,并允许您从按量付费开始;其无痕模式(在 Casdoor 中,使用 Popup 子类型)接近 Turnstile 的隐形体验。GeeTest 在 30 天试用期后需通过销售团队购买。如果同一个 Casdoor 实例同时服务于中国和全球其他地区的用户,请记住一个应用只能配置一种验证码提供商,因此如果不同受众需要不同的验证码,请将他们拆分为两个应用。
欧盟地区注重隐私的用户
每个托管的验证码都会向提供商发送一些关于访客浏览器的数据。如果您的法务团队希望登录路径中完全不涉及第三方,那么 Casdoor 的默认验证码是表中唯一将所有内容保留在您自己服务器上的选项。在托管选项中,Turnstile 和 hCaptcha 都将隐私作为产品的一部分(分别限制数据仅为验证所需,并遵循 GDPR 和 EU-U.S. Data Privacy Framework)。reCAPTCHA 会设置一个 _GRECAPTCHA cookie;Google 指出,从 www.recaptcha.net 提供服务可以避免 www.google.com 可能设置的其他 cookie。无论您选择哪一个,都请在您的隐私声明中列出它。
自托管、内网或离线环境
使用默认验证码。它不需要密钥,也不需要出站网络访问,因此适用于气隙隔离的安装环境。将其与 Internet-Only 规则(见下文)结合使用,这样办公室网络中的人员就不会看到它,而来自公共互联网的请求仍然会触发它。
默认验证码是对抗自动破解工具最弱的选项,因为它只是一个简单的扭曲数字图像。对于高流量的公共登录页面,请将其与多因素身份验证结合使用,或将用户迁移到无密码登录,这消除了验证码旨在减缓的密码猜测行为。
Casdoor 中 CAPTCHA 的工作原理
您添加一个 Category 设置为 Captcha 的提供商,类型可以是以下之一:Default、reCAPTCHA、reCAPTCHA v2、reCAPTCHA v3、hCaptcha、Cloudflare Turnstile、GEETEST 或 Aliyun Captcha。然后,您在 Providers 选项卡上将其添加到应用中。一个应用只能包含一个验证码提供商;Casdoor 拒绝保存第二个。每个提供商的设置步骤请参阅验证码提供商文档。
Casdoor 在哪里要求输入验证码
同一个提供商保护多个操作,并且 Casdoor 在服务器上检查令牌,而不仅仅是在浏览器中:
- 密码登录。
- 注册表单提交。
- 通过电子邮件或短信发送验证码,这涵盖了注册的代码步骤、忘记密码页面和基于代码的登录。这是防止耗尽您短信预算的机器人的保护措施。
Casdoor 何时要求输入验证码
应用中验证码提供商的 Rule 决定了它何时出现:
| Rule | Behavior |
|---|---|
None | 从不;验证码关闭 |
Dynamic | 仅当用户的失败登录次数达到应用的 Failed signin limit 时 |
Always | 每次 |
Internet-Only | 针对来自公共 IP 地址的请求;不针对私有、回环或其他非公共地址 |
Dynamic 是最温和的登录设置:诚实的用户永远不会看到挑战,而尝试猜测密码的人会在几次失败后遇到一个。然而,它只适用于已存在的账户。注册或发送到尚未拥有账户的地址的代码不会触发它。如果您担心注册时的 SMS 或电子邮件滥用,请使用 Always 或 Internet-Only。
它在页面上的位置
在应用的登录项目中,Captcha 项目有其自己的规则:Pop up 在需要时在对话框中显示验证码,而 Inline 则将其直接放在页面上。请参阅更改验证码。阿里云验证码有一个额外的 Sub type:Embed 在 Casdoor 对话框内显示它,而 Popup 将控制权交给阿里云自己的弹窗,这是无痕场景所需要的。
在启用规则之前,请使用提供商页面上的 Preview 按钮检查密钥。
参考资料
- Google reCAPTCHA 版本:https://developers.google.com/recaptcha/docs/versions
- Google reCAPTCHA 常见问题解答(
recaptcha.net、_GRECAPTCHAcookie):https://developers.google.com/recaptcha/docs/faq - Google Cloud Fraud Defense 中的 reCAPTCHA 计费(检查于 2026-11-02):https://docs.cloud.google.com/recaptcha/docs/billing-information
- hCaptcha 定价(检查于 2026-11-02):https://www.hcaptcha.com/pricing
- hCaptcha 隐私政策:https://www.hcaptcha.com/privacy
- Cloudflare Turnstile 概述:https://developers.cloudflare.com/turnstile/
- Cloudflare Turnstile 计划(检查于 2026-11-02):https://developers.cloudflare.com/turnstile/plans/
- Cloudflare 中国网络常见问题解答(中国大陆的 Turnstile):https://developers.cloudflare.com/china-network/faq/
- GeeTest CAPTCHA v4(检查于 2026-11-02):https://www.geetest.com/adaptive-captcha
- 阿里云验证码 2.0 概述:https://help.aliyun.com/zh/captcha/captcha2-0/product-overview/what-is-alibaba-cloud-captcha-2
- 阿里云验证码 2.0 版本和价格(检查于 2026-11-02):https://help.aliyun.com/zh/captcha/captcha2-0/product-overview/version-description