Tropical beanch

在国内站点使用谷歌reCAPTCHA v3

Chuck Chen
 · 

方案

前两天在做登录时,调研了各种验证码方案,以保护短信不被滥发。

国内主要的服务方案包括:

  1. 腾讯天御。
  2. 极验。
  3. 阿里云验证码。

原本一直使用的 Cloudflare Turnstile 在国内的连通性并不稳定,经常出现加载缓慢或超时的情况。后来经过调研,发现谷歌其实专门为国内(及无法访问 Google 的地区)提供了 www.recaptcha.net 域名。

虽然其稳定性可能不如国内大厂(如腾讯、阿里)的原生服务,但对于主要面向全球用户、仅需兼容国内访问的站点来说,这通常是成本最低且改动最小的方案。

定价与特性对比

为了更直观地展示各方案的差异,以下是目前(2024/2025)主流验证码服务的简要对比。请注意,各大厂商的定价策略可能会随时调整。

服务商免费额度预估成本优势劣势
Google reCAPTCHA v31万次/月 (Enterprise Essentials)
无需企业认证
免费 ( < 1万次/月)
超出需 $8/月 (至10万次)
接入最简单,全球通用标准,插件生态丰富,无需国内企业资质。免费额度较以前大幅缩水 (曾为100万次);国内连接依赖 recaptcha.net 镜像。
腾讯云 (天御)新用户通常有少量试用包
需实名/企业认证
按量付费
约 ¥0.03 - ¥0.05 /次
国内连通性、稳定性最佳;风控数据最全。接入需完成腾讯云认证;配置相对繁琐;对个人开发者门槛较高。
阿里云验证码 2.0按量付费模式
需实名/企业认证
按量付费
约 ¥0.05 /次 (阶梯价)
阿里云生态集成度高;多种验证形态。同样存在接入认证门槛;免费额度规则经常变动。
极验 (Geetest)个人开发者可申请免费版
(需审核)
免费 (限制功能)
商业版需咨询报价
交互体验好 (行为验证),品牌知名度高。个人版申请流程较长;商业版价格不透明(通常面向企业)。

为什么 reCAPTCHA 仍是个人开发者的首选?

尽管 Google 将 reCAPTCHA 的免费额度从原先的每月 100 万次下调至 1 万次,但对于绝大多数个人博客、小型工具站、独立开发者而言,这个额度依然是绰绰有余的。

  1. 零门槛接入:你不需要拥有一家中国大陆的注册公司,也不需要通过繁琐的企业实名认证。只要有一个 Google 账号,几分钟就能获取 API Key。
  2. 开发成本低:几乎所有的 Web 框架、CMS(如 WordPress)、第三方库都原生支持 reCAPTCHA。你往往不需要写一行代码,只需填入 Key 即可。
  3. 维护成本低:使用 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:目前在国内访问质量不佳,暂不推荐作为国内核心验证手段。