在国内站点使用谷歌reCAPTCHA v3
方案
前两天在做登录时,调研了各种验证码方案,以保护短信不被滥发。
国内主要的服务方案包括:
- 腾讯天御。
- 极验。
- 阿里云验证码。
原本一直使用的 Cloudflare Turnstile 在国内的连通性并不稳定,经常出现加载缓慢或超时的情况。后来经过调研,发现谷歌其实专门为国内(及无法访问 Google 的地区)提供了 www.recaptcha.net 域名。
虽然其稳定性可能不如国内大厂(如腾讯、阿里)的原生服务,但对于主要面向全球用户、仅需兼容国内访问的站点来说,这通常是成本最低且改动最小的方案。
定价与特性对比
为了更直观地展示各方案的差异,以下是目前(2024/2025)主流验证码服务的简要对比。请注意,各大厂商的定价策略可能会随时调整。
| 服务商 | 免费额度 | 预估成本 | 优势 | 劣势 |
|---|---|---|---|---|
| Google reCAPTCHA v3 | 1万次/月 (Enterprise Essentials) 无需企业认证 | 免费 ( < 1万次/月) 超出需 $8/月 (至10万次) | 接入最简单,全球通用标准,插件生态丰富,无需国内企业资质。 | 免费额度较以前大幅缩水 (曾为100万次);国内连接依赖 recaptcha.net 镜像。 |
| 腾讯云 (天御) | 新用户通常有少量试用包 需实名/企业认证 | 按量付费 约 ¥0.03 - ¥0.05 /次 | 国内连通性、稳定性最佳;风控数据最全。 | 接入需完成腾讯云认证;配置相对繁琐;对个人开发者门槛较高。 |
| 阿里云验证码 2.0 | 按量付费模式 需实名/企业认证 | 按量付费 约 ¥0.05 /次 (阶梯价) | 阿里云生态集成度高;多种验证形态。 | 同样存在接入认证门槛;免费额度规则经常变动。 |
| 极验 (Geetest) | 个人开发者可申请免费版 (需审核) | 免费 (限制功能) 商业版需咨询报价 | 交互体验好 (行为验证),品牌知名度高。 | 个人版申请流程较长;商业版价格不透明(通常面向企业)。 |
为什么 reCAPTCHA 仍是个人开发者的首选?
尽管 Google 将 reCAPTCHA 的免费额度从原先的每月 100 万次下调至 1 万次,但对于绝大多数个人博客、小型工具站、独立开发者而言,这个额度依然是绰绰有余的。
- 零门槛接入:你不需要拥有一家中国大陆的注册公司,也不需要通过繁琐的企业实名认证。只要有一个 Google 账号,几分钟就能获取 API Key。
- 开发成本低:几乎所有的 Web 框架、CMS(如 WordPress)、第三方库都原生支持 reCAPTCHA。你往往不需要写一行代码,只需填入 Key 即可。
- 维护成本低:使用
recaptcha.net方案,你不需要担心国内服务器的复杂的 SDK 升级或维护,只需替换一个 URL。
对于日均验证请求小于 300 次的个人站点,reCAPTCHA + recaptcha.net 依然是**性价比最高($0 + 时间成本最低)**的解决方案。
实施步骤
要使用 recaptcha.net,主要需要修改前端资源的加载路径。
1. 前端代码调整
将原本指向 www.google.com 的脚本地址替换为 www.recaptcha.net。
修改前:
<script src="https://www.google.com/recaptcha/api.js?render=你的密钥"></script>修改后:
<script src="https://www.recaptcha.net/recaptcha/api.js?render=你的密钥"></script>调用 grecaptcha.execute 的方式保持不变,无需修改业务逻辑代码。
2. 后端验证调整(可选)
如果你的后端服务器部署在中国大陆境内,连接 www.google.com 可能会超时或失败。此时,你需要将 verify API 的端点也改为 recaptcha.net。
API 地址:
https://www.recaptcha.net/recaptcha/api/siteverify
如果你的服务器部署在海外,后端验证地址通常可以保持 www.google.com 不变,因为它是从服务器发起的请求,不受客户端网络环境影响。
总结
- 首选方案:如果你的业务深度依赖国内用户,建议优先使用腾讯天御、极验等国内服务,体验最稳。
- 兼容方案:如果是全球站点需要兼容国内访问,使用
recaptcha.net替换google.com是官方推荐的做法。 - Cloudflare Turnstile:目前在国内访问质量不佳,暂不推荐作为国内核心验证手段。