Google 中国的 reCAPTCHA

Google reCAPTCHA in China

我的站点正在使用 Google reCAPTCHA 控件,但我听说它被阻止了 中国,我看到有人报告说将 API 更改为 https://www.recaptcha.net 在中国行得通吗?

Anyone try this because I see it still going out to google?

string apiUrl = "https://www.recaptcha.net/recaptcha/api/siteverify?secret={0}&response={1}";

正如 google 在他的帮助页面中所说,您应该在 api 调用中使用此域“www.recaptcha.net”而不是“www.google.com”。

  • 首先,将 src="https://www.google.com/recaptcha/api.js" 替换为 src="https://www.recaptcha.net/recaptcha/api.js"
  • 之后,将相同的方法应用于您网站上使用“www.google.com/recaptcha/”的所有其他地方。

获取自:https://developers.google.com/recaptcha/docs/faq#can-i-use-recaptcha-globally

编辑:澄清一些评论,如果你在中国以外的地方尝试,是的,你会得到对 gstatic.com 的引用,但如果你在中国尝试这个,任何对 gstatic.com 的引用替换为 gstatic.cn(不要忘记将其添加到您的 SCP)。所以这个解决方案仍然有效。

恕我直言,google 中国的情况不稳定,随时可能被屏蔽。 从百度线程中,它还提到有时 google recaptcha 有效,有时无效。 https://www.v2ex.com/t/492752(中文)

在编程世界中,不稳定的函数意味着无用或更多的代码来处理异常。

如果你真的需要使用google recaptcha, 你最好先用VPN(中国IP)测试一下

您可以考虑以下选项,

  1. 您可以使用其他验证码

    Google会告诉你各种验证码。

  2. 建立你自己的验证码

  1. 使用代理 Web 服务器 (nginx) 向 google recaptcha
  2. 发送数据或从中接收数据

我已经分享了使用 cURL 解决这个问题的方法。

cURL 充当客户端和服务器之间的中间人。所以即使google.com/recaptcha因为被服务商屏蔽而无法被客户端访问,cURL也可以作为代理发送HTTP 请求 并获得响应