You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

reCAPTCHA v3 随机返回invalid-keys错误排查求助

reCAPTCHA v3 随机返回invalid-keys错误排查方案

问题背景

我为高流量表单创建并集成了全新的reCAPTCHA v3密钥,前端按官方步骤实现,后端用PHP cURL发起验证请求。测试时流程正常,但约40%请求随机返回未在官方文档中列出的invalid-keys错误。已确认密钥正确,更换长期可用的旧密钥、等待超16小时后问题仍存在,求推进思路。

前端代码

<script src='https://www.google.com/recaptcha/api.js'></script>
<input type="submit" 
    class="submit g-recaptcha" 
    name="form_submit" 
    value="Submit" 
    data-sitekey="RECAPTCHA_SITE_KEY"
    data-callback="onRecaptchaSubmit" 
    data-action="submit" />
<script type="text/javascript">
    function onRecaptchaSubmit(token) {
        document.getElementById('FORM_ID').submit();
    }
</script>

后端代码

<?php 
// Make the API request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://www.google.com/recaptcha/api/siteverify");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
    'secret'   => 'RECAPTCHA_SECRET_KEY',
    'response' => $token,
    'remoteip' => $ip_address,
)));

// Fetch response
$response = json_decode(curl_exec($ch));
curl_close($ch);

排查建议

  • 检查后端密钥的配置一致性
    高流量场景如果用多实例部署,可能存在部分实例未同步最新密钥的情况。建议在后端验证代码中添加日志,记录每次请求的secret值、response token和remoteip,确认是否存在密钥不一致的请求。

  • 防止前端token重复提交
    用户快速多次点击提交按钮可能生成多个token,部分过期或重复使用的token会触发异常。可以在回调函数中禁用按钮:

    function onRecaptchaSubmit(token) {
        const submitBtn = document.querySelector('.g-recaptcha');
        submitBtn.disabled = true;
        document.getElementById('FORM_ID').submit();
    }
    
  • 验证cURL请求参数合法性
    确保$ip_address是合法的IP格式(无多余字符),该参数为可选,可暂时移除测试是否解决问题。同时检查$token是否存在空值或截断情况,添加日志记录接收的token值。

  • 排查服务器网络与请求限制
    高流量下服务器出口IP可能被Google临时限制,检查cURL请求是否有超时、DNS解析异常。另外确保服务器时间同步正常,时间偏差过大可能导致token验证失败。

  • 检查表单传输过程中的token完整性
    确认表单以POST方式提交,避免GET请求导致token参数暴露或截断。排查是否有中间件(如WAF、CDN)篡改了token参数,可在后端对比前端提交的token与实际接收值是否一致。

内容的提问来源于stack exchange,提问作者brodenbrett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:12:51