Heim >Backend-Entwicklung >PHP-Tutorial >Wie validiere ich Google reCAPTCHA v3 auf der Serverseite?

Wie validiere ich Google reCAPTCHA v3 auf der Serverseite?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 09:15:29621Durchsuche

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

Verwendung von Google reCAPTCHA v3 auf der Serverseite

Googles reCAPTCHA v3 ist im Vergleich zu seinem Kontrollkästchen-basierten Vorgänger eine fortschrittlichere Methode zur Bot-Erkennung. Während die Implementierung am Frontend unkompliziert ist, erfordert die Handhabung der Validierung auf der Serverseite einen anderen Ansatz.

Veraltete reCAPTCHA v2-Validierung

Der Code, den Sie für verwendet haben Die Validierung von reCAPTCHA v2 ist für v3 nicht mehr geeignet. reCAPTCHA v3 verwendet eine POST-Anfrage mit zusätzlichen Parametern und einem geheimen Schlüssel zur Validierung.

Sichere POST-basierte Validierung für reCAPTCHA v3

Hier ist ein überarbeitetes PHP-Skript mit POST- basierte Validierung für 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>

Verwendung

Rufen Sie die Funktion isValid() auf, um das reCAPTCHA-Token zu überprüfen und die Antwort entsprechend zu verarbeiten. Zum Beispiel:

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

Sicherheitshinweis

Es ist wichtig, in der POST-Anfrage einen geheimen Schlüssel zu verwenden, um die Integrität der Validierung zu schützen. Halten Sie diesen geheimen Schlüssel geheim und geben Sie ihn niemals öffentlich preis.

Das obige ist der detaillierte Inhalt vonWie validiere ich Google reCAPTCHA v3 auf der Serverseite?. 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