如何在伺服器端驗證 Google reCAPTCHA v3?

Susan Sarandon
發布: 2024-11-03 09:15:29
原創
556 人瀏覽過

How Do I Validate Google reCAPTCHA v3 on the Server Side?

在伺服器端使用Google reCAPTCHA v3

與基於複選框的前身相比,Google 的reCAPTCHA v3 是一種更先進的機器人檢測方法。雖然在前端實作它很簡單,但在伺服器端處理驗證需要不同的方法。

已棄用的 reCAPTCHA v2 驗證

您提到的用於reCAPTCHA v2 驗證不再適合 v3。 reCAPTCHA v3 使用帶有附加參數和金鑰的 POST 請求進行驗證。

reCAPTCHA v3 的基於 POST 的安全驗證

這是使用 POST 修改的 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>
登入後複製

用法

呼叫 isValid() 函數來驗證 reCAPTCHA 令牌並相應地處理回應。例如:

<code class="php">if (isValid()) {
    // The user has passed the reCAPTCHA check.
    // ...
} else {
    // The user has failed the reCAPTCHA check.
    // ...
}</code>
登入後複製

安全注意事項

必須在 POST 請求中使用金鑰來保護驗證的完整性。請將此密鑰保密,切勿公開洩漏。

以上是如何在伺服器端驗證 Google reCAPTCHA v3?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板