使用 PHP 在服务器端验证 Google reCAPTCHA v3
新的 Google reCAPTCHA 复选框无缝集成到前端,但其服务器 -使用 PHP 进行侧面处理可能会带来挑战。为了在服务器上有效地处理它,了解与以前的 reCAPTCHA 版本的关键区别至关重要。
旧的 reCAPTCHA 验证
问题中提供的代码片段演示了用于早期 reCAPTCHA 版本的方法。但是,它不适合 reCAPTCHA v3:
<code class="php">require_once('recaptchalib.php'); // ... if (!$resp->is_valid) { $errCapt = '<p style="color:#D6012C ">The CAPTCHA Code was not entered correctly.</p>'; }</code>
安全注意事项
值得注意的是,给定解决方案中使用的 GET 请求方法会公开您的私钥。为了增强安全性,Google 建议改用 POST 请求。
通过 POST 验证 reCAPTCHA v3
要使用 PHP 在服务器端成功验证 reCAPTCHA v3,请按照以下步骤操作:
<code class="php">function isValid() { try { $url = 'https://www.google.com/recaptcha/api/siteverify'; $data = ['secret' => '[YOUR SECRET KEY]', 'response' => $_POST['g-recaptcha-response'], 'remoteip' => $_SERVER['REMOTE_ADDR']]; $options = [ 'http' => [ 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data) ] ]; $context = stream_context_create($options); $result = file_get_contents($url, false, $context); return json_decode($result)->success; } catch (Exception $e) { return null; } }</code>
如果用户成功通过 reCAPTCHA 测试,此函数将返回 true,否则返回 false,如果出现错误,则返回 null。通过使用此功能,您可以有效地验证用户身份并减少垃圾邮件和机器人活动。
以上是如何使用 PHP 在服务器端验证 Google reCAPTCHA v3?的详细内容。更多信息请关注PHP中文网其他相关文章!