Installation reCAPTCHA v3

La documentation sur reCAPTCHA v3 est en anglais-us et les tutoriels en français étant plutôt rares.
Merci à Steven Cotterill pour son aide et ses recommandations.

Voici un petit tutoriel expliquant comment j' ai installé reCAPTCHA v3, dans mes 2 sites web, sur les pages où il y avait un formulaire de contact.
Je voulais surtout protéger mes formulaires des spammeurs et de leurs robots mais je ne voulais pas modifier l' aspect et le processus d' envoi du courrier de mes formulaires AJAX/PHP.

Ce formulaire sur mon autre site est très visité par les spam-bot. Cela perturbait gravement le serveur mail de mon hébergeur.
  Tuto-DEMO formulaire AJAX/PHP.


J' ai pensé que reCAPTCHA pouvait être une bonne solution. Il y a juste quelques lignes de code à placer dans la page où est situé le formulaire en HTML et dans la page PHP qui envoie les messages.

reCAPTCHA v3 mène la vie dure aux robots mais ne perturbe pas les utilisateurs.

Le fichier recaptchalib.php rend la tâche encore plus facile.

Ce fichier devra être placé au même niveau que vos pages contenant un formulaire.
Si ces pages sont situées à la racine du site, il faudra placer recaptchalib.php à la racine du site.

  recaptchalib.php-GitHub

Les Spam-bot

Sont de simples scripts qui envoient des milliards de spams par jour dans les boites de courrier électronique de gens qui n' ont rien demandé. Les spam-robots sont bêtes et méchants et il suffit parfois d' un simple leurre dans les inputs de votre formulaire pour les éloigner. Ces robots ne savent faire que remplir les champs de saisie de formulaires mais ne savent pas effacer. Si vous placer la valeur value="http://spammeurs-associés" dans le champs de saisie "Objet" ou "Site web", un humain aura vite fait de l' effacer mais un robot vous enverra le champs rempli tel quel car il ne craint pas le ridicule.
Sur cette page j' ai installé un formulaire AJAX/PHP et reCAPTCHA v3 pour le protéger. Si les moteurs de recherche me référencient correctement, nous pourrons en discuter pour améliorer ce tuto.

Indispensables

Il vous faut 2 clés de sécurité

Sur le principe de GNUPG vous avez une clé publique et une clé privée

  • une clé publique =clé du site(site key)
  • une clé privée =clé secrète(secrete key)

Et donc se rendre à cette page:

créer-Enregistrer un site

Remplacer "blogspot.com" par votre nom de domaine et cliquer sur ENVOYER

Sauvegarder aussitôt les deux clés dans un éditeur de texte par exemple.

Code à entrer

Dans ma page contenant un formulaire

1 - dans la partie HEAD
ce script est valable avec ou sans recaptcha.lib à requérir

L' API qui renseigne sur votre clé du site:

 <script src="https://www.google.com/recaptcha/api.js?render=votre clé du site">
 </script>
 <script>
 grecaptcha.ready(function () {
 grecaptcha.execute('votre clé du site', { action: 'label' }).then(function (token) {
 var recaptchaResponse = document.getElementById('recaptchaResponse');
 recaptchaResponse.value = token;
            });
        });
</script>

Vous devriez maintenant voir apparaitre un badge tout en bas à droite de votre écran avec une alerte.
Cette alerte disparaitra une fois la page transférée sur le web

Dans ma page AJAX/PHP

La clé secrète que personne ne doit voir sera cachée dans ce fichier PHP. C' est la métode la plus simple.
Elle sera contenue dans un script qui fera appel à recaptchalib.php

Ajout tout au début de ma page PHP:

<?php
require 'recaptchalib.php';
$siteKey = 'votre clé du site'; 
$secret = 'votre clé secrète'; 
?>

Sans recaptchalib.php

Ces scripts protègent particulièrement les formulaires.

Dans ma page contenant un formulaire

1 - dans la partie HEAD

L' API qui renseigne sur votre clé du site:

2 - juste avant la balise </form> <input type="hidden" name="recaptcha_response" id="recaptchaResponse"> Ce champ de saisie est seulement visible par les robots et peut servir de leurre. Les données contenues dans ce champ de saisie seront envoyé à recaptcha, grâce au script PHP ci-dessous:

Dans ma page AJAX/PHP

3 -Ajout en haut de ma page PHP: <?php
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['recaptcha_response'])) {

$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
$recaptcha_secret = 'votre clé secrète';
$recaptcha_response = $_POST['recaptcha_response'];

$recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
$recaptcha = json_decode($recaptcha);

if ($recaptcha->score >= 0.5) {

} else {
} } ?>

Il est recommendé de choisir pour nom d' action un label différent pour chaque page contenant un formulaire protégé par reCAPTCHA. (C' est dans le javascript) exemple pour cette page recaptcha.php: { action: 'recaptcha' }).

Si vous voulez une protection invisible et cacher le badge. Dans la feuille de style CSS: .recaptcha-badge { visibility:hidden}

Maintenant vous pouvez aller sur cette page
et cliquer sur "Admin console" pour vérifier vos scores et voir si vous avez des requêtes suspectes.


Formulaire de contact


Votre commentaire a bien été envoyé, merci.
Nom
Courriel
Site web
Message

Votre adresse électronique ne sera pas communiquée

copyleft@wubijacq.com


Logiciels téléchargés

Les DEBs XnViewMP-linux et les MSI IsoRecorder et Gpick sont actuellement les logiciels les plus demandés sur wubijacq.com