Google reCAPTCHA 无法在 Linux 系统上运行

Google reCAPTCHA 无法在 Linux 系统上运行

我正在将其reCAPTCHA与我的注册页面进行整合,除了一个奇怪的问题外,一切似乎都运行正常。

我已经在所有本地机器上测试了此代码,并且在我们的测试服务器(window)上也测试了它,一切正常。我们刚刚设置了一个 Linux 服务器(Cents OS 6.0),并测试了我的实现,但它在 Linux 机器上不起作用。无论我是否正确填写验证码,我总是得到错误的响应。这是我的 Java 代码,我用它来调用 Google 的 reCAPTCHA API 进行验证

reCaptcha.checkAnswer(request.getRemoteAddr(), request.getParameter("challengeValue"),
                request.getParameter("responseValue"));

我曾尝试调试代码,但目前没有找到任何成功的方法,我注意到的唯一区别是关于request.getRemoteAddr()

request.getRemoteAddr()为 Linux 和 Windows 服务器提供不同的 IP。(使用相同的浏览器)

Windows 和 Linux 服务器都在具有相同 IP 的一台机器上运行(某种虚拟盒)

我在用recaptcha4j集成reCaptchaAPI。

对我来说,问题似乎出在我不知道的 Linux 设置或配置上。我甚至和我们的 IT 人员交谈过,但他似乎也一无所知。

我已经在 Ubuntu 上测试过了,它在那台机器上运行良好,似乎 Cent OS6 存在一些配置问题

答案1

我确信您的测试服务器和生产服务器之间的区别是防火墙。
检查它是否接受输出新的向 Google 服务器发出请求,已确立的从他们。

如果你使用 iptables 来实现这个声明,有一种方法:

iptables -A INPUT -i eth0 -p tcp -s <google_ipv4_1> -j ACCEPT  
iptables -A OUTPUT -o eth0 -p tcp -d <google_ipv4_1> -j ACCEPT

答案2

您需要识别浏览器和操作系统,以及您所使用的任何可能相关的插件。注意任何可能影响 cookie 处理方式的因素。

您的问题是否发生在使用其他浏览器的 Linux 主机上?在其他 Linux 主机上又会怎样?

如果您的 VirtualBox 实例使用桥接网络,尽管位于同一物理主机上,它们可能使用从 DHCP 获取的不同 IP。

相关内容