【问题标题】:reCAPTCHA stopped working - Invalid EncryptionreCAPTCHA 停止工作 - 加密无效
【发布时间】:2018-10-21 15:53:20
【问题描述】:

我在我的网站上使用 reCAPTCHA 已经有一段时间了,突然我意识到它已经停止工作了。 reCAPTCHA 在那里,但是在正确验证后,响应 FAILS 导致表单提交失败。

在客户端控制台,浏览器报错:

未捕获(承诺)无效加密。

我已尝试搜索此错误,但找不到类似的内容。 提交表单后,PHP中的服务器端验证失败。我不确定上面的错误是否相关,但是,它以前没有出现过。

客户端集成示例页面:

<html>
<head>
    <title>reCAPTCHA demo: Simple page</title>
     <script src="https://www.google.com/recaptcha/api.js" async defer> 
</script>
</head>
  <body>
    <form action="?" method="POST">
      <div class="g-recaptcha" data-sitekey="your_site_key"></div>
      <br/>
      <input type="submit" value="Submit">
    </form>
   </body>
</html>

服务器端验证PHP:

$response = json_decode( 
    file_get_contents( 
 "https://www.google.com/recaptcha/api/siteverifysecret=MY_SECRET&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR'] ), true );

if($response['success'] == false){
    echo "FAIL";
} else {
    //do something
}

我已按照here 找到的说明进行操作。

【问题讨论】:

  • 对我来说,服务器响应仍然与客户端访问谷歌时获得的代码匹配。尽管如此,还是很奇怪。
  • 我正在使用 zend 框架的表单模块来渲染 ReCaptcha 元素,我也开始遇到这个问题。
  • 使用npmjs.com/package/react-google-invisible-recaptcha,目前遇到同样的问题..
  • 我也遇到了这个问题。使用 VueJS vue-recaptcha 组件 (npmjs.com/package/vue-recaptcha)

标签: javascript php html recaptcha


【解决方案1】:

我昨天遇到了同样的问题。看起来谷歌已经承认了这个问题并正在努力解决它。他们声称它不应该影响 reCAPTCHA 的整体功能。

我得到了这个信息here

以下是对话的屏幕截图。

【讨论】:

  • 我很困惑,它以前一直在工作,但突然验证失败。我确实尝试在 reCaptcha 验证成功的本地 Web 服务器上实现它(即使控制台错误仍然存​​在)。但是,由网络托管服务提供商(miss-hosting)托管的网站不会。我使用完全相同的代码(除了 ofc 令牌)在本地 Web 服务器上进行测试并得到不同的结果。奇怪,奇怪……
【解决方案2】:

似乎 Jessica 对浏览器错误的回答。 但是,除了错误之外,我的 reCaptcha 验证失败。我将我的 Web 服务器的 PHP 版本从 7.0 更新到了 7.1。这解决了我的问题。 因此,如果您在验证时遇到问题,而不仅仅是浏览器中的错误消息,请检查您的 Web 服务器的 PHP 版本。

【讨论】:

    猜你喜欢
    • 2014-12-16
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 2022-10-01
    • 2013-06-30
    相关资源
    最近更新 更多