Maison > développement back-end > tutoriel php > Comment valider Google reCAPTCHA v3 côté serveur ?

Comment valider Google reCAPTCHA v3 côté serveur ?

Susan Sarandon
Libérer: 2024-11-03 09:15:29
original
600 Les gens l'ont consulté

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

Utilisation de Google reCAPTCHA v3 côté serveur

ReCAPTCHA v3 de Google est une méthode de détection de robots plus avancée que son prédécesseur basé sur des cases à cocher. Bien que sa mise en œuvre sur le front-end soit simple, la gestion de la validation côté serveur nécessite une approche différente.

Validation reCAPTCHA v2 obsolète

Le code que vous avez mentionné utiliser pour La validation reCAPTCHA v2 ne convient plus à la v3. reCAPTCHA v3 utilise une requête POST avec des paramètres supplémentaires et une clé secrète pour la validation.

Validation sécurisée basée sur POST pour reCAPTCHA v3

Voici un script PHP révisé utilisant POST- validation basée sur 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>
Copier après la connexion

Utilisation

Appelez la fonction isValid() pour vérifier le jeton reCAPTCHA et gérer la réponse en conséquence. Par exemple :

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

Note de sécurité

Il est essentiel d'utiliser une clé secrète dans la requête POST pour protéger l'intégrité de la validation. Gardez cette clé secrète privée et ne l'exposez jamais publiquement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal