使用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>
以上是如何使用 PHP 在伺服器端驗證 Google reCAPTCHA v3?的詳細內容。更多資訊請關注PHP中文網其他相關文章!