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

Wie validiere ich Google reCAPTCHA v3 auf der Serverseite mit PHP?

Linda Hamilton
Linda HamiltonOriginal
2024-11-01 09:44:43393Durchsuche

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

Validierung von Google reCAPTCHA v3 auf der Serverseite in PHP

Hintergrund:

Google reCAPTCHA v3 ist eine erweiterte Version von das beliebte CAPTCHA-System zur Verhinderung von Spam und Missbrauch. Es basiert auf maschinellen Lernmodellen zur Analyse des Benutzerverhaltens und bietet einen Risikoanalyse-Score anstelle eines einfachen Challenge-Response-Mechanismus.

Serverseitige Validierung:

Zur Validierung Wenn Sie reCAPTCHA v3 auf der Serverseite mit PHP verwenden möchten, müssen Sie die folgenden Schritte ausführen:

  1. POST-Daten abrufen:

    • Extrahieren Sie die „g-recaptcha-response“-Wert aus den POST-Daten, die von der clientseitigen Formularübermittlung empfangen wurden.
  2. Anforderungsparameter festlegen:

    • Geben Sie Ihren geheimen Schlüssel, den „g-recaptcha-response“-Wert und die IP-Adresse des Clients in einem Array an.
  3. HTTP-Anfrage vorbereiten :

    • Erstellen Sie einen HTTP-Kontext mit der angegebenen Anforderungsmethode, Headern und POST-Daten.
  4. Anfrage ausführen:

    • Verwenden Sie file_get_contents() mit dem HTTP-Kontext, um die Anfrage an die API von reCAPTCHA zu senden.
  5. Antwort analysieren:

    • Dekodieren Sie die von reCAPTCHA empfangene JSON-Antwort und extrahieren Sie den Parameter „Erfolg“.
  6. ReCAPTCHA validieren:

    • Gib „true“ zurück, wenn „success“ „true“ ist, andernfalls „false“.

Beispielcode:

<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 einfach die Funktion isValid() auf, um das von der Clientseite empfangene reCAPTCHA-Token zu validieren.

<code class="php">if (isValid()) {
    // User passed reCAPTCHA
} else {
    // User failed reCAPTCHA
}</code>

Das obige ist der detaillierte Inhalt vonWie validiere ich 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