Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verifiziert man Google reCAPTCHA v3 auf der Serverseite mit PHP?

Wie verifiziert man Google reCAPTCHA v3 auf der Serverseite mit PHP?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-01 05:10:27481Durchsuche

How to Verify Google reCAPTCHA v3 on the Server Side with PHP?

Verifizierung von Google reCAPTCHA v3 auf der Serverseite mit PHP

Das neue Google reCAPTCHA-Kontrollkästchen lässt sich nahtlos in das Frontend integrieren, aber sein Server- Die seitliche Handhabung mit PHP kann eine Herausforderung darstellen. Um es effektiv auf dem Server zu verarbeiten, ist es wichtig, die wichtigsten Unterschiede zu den vorherigen reCAPTCHA-Versionen zu verstehen.

Alte reCAPTCHA-Validierung

Der bereitgestellte Codeausschnitt aus der Frage zeigt dies ein Ansatz, der für frühere reCAPTCHA-Versionen verwendet wurde. Es ist jedoch nicht für reCAPTCHA v3 geeignet:

<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>

Sicherheitsüberlegungen

Es ist zu beachten, dass die in der angegebenen Lösung verwendete GET-Anfragemethode Ihren privaten Schlüssel offenlegt. Für mehr Sicherheit empfiehlt Google stattdessen die Verwendung einer POST-Anfrage.

Überprüfung von reCAPTCHA v3 per POST

Um reCAPTCHA v3 auf der Serverseite mit PHP erfolgreich zu validieren, befolgen Sie diese Schritte :

<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>

Diese Funktion gibt true zurück, wenn der Benutzer den reCAPTCHA-Test erfolgreich bestanden hat, andernfalls false. und null im Fehlerfall. Mithilfe dieser Funktion können Sie Benutzer effizient authentifizieren und Spam- und Bot-Aktivitäten eindämmen.

Das obige ist der detaillierte Inhalt vonWie verifiziert man Google reCAPTCHA v3 auf der Serverseite mit PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn