Installer reCAPTCHA V3 sur une vieille version d’eZ Publish

Récément j’ai du installer Recaptcha V3 sur une ancienne version d’eZpublish (v4). Voici comment faire simplement.

Attention cette méthode n’est pas optimale car je modifie le code en dur sachant que la version du site ne sera jamais mise à jour.

1- Gérérer les clés sur Google reCAPTCHA

Premièrement aller sur le site reCAPTCHA et générer les clés pour le site désiré en prenant soin de choisir la V3.

2- Ajouter le javascript dans les templates eZ Publish

Ajouter ce petit bout de de code dans le code HTML du site.

{literal}
<script src="https://www.google.com/recaptcha/api.js?render=CLE_PUBLIQUE_DU_SITE"></script>    
<script>        
grecaptcha.ready(function () 
{            
grecaptcha.execute('CLE_PUBLIQUE_DU_SITE', { action: 'contact' }).then(function (token) {

var recaptchaResponse = document.getElementById('recaptchaResponse');               
recaptchaResponse.value = token;            

});        

});    

</script>    
{/literal}

Dans le template du formulaire ajouter également ce champ input

<input type="hidden" name="recaptcha_response" id="recaptchaResponse">

3- Modifier le fichier PHP de traitement de contact

Modifier le fichier kernel/content/collectedinformation.php après le bloc (environ l149)

 // Check every attribute if it's supposed to collect information    
$attributeDataBaseName = 'ContentObjectAttribute';   
$unvalidatedAttributes = array();    
$canCollect = true;    
$requireFixup = false;

et ajouter :

/** Recaptcha V3 */
    
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['recaptcha_response'])) {
            
$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';           
$recaptcha_secret = 'CLE_PRIVEE_DU_SITE';           
$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) {                
// OK. On laisse la suite du code se dérouler
} else {                
// Risque de spam -> on bloque                
echo "Votre IP peut être considérée comme un SPAM. Merci de nous envoyer un email via notre adresse email directement.";                
echo "<br/><br/><br/><br/>";                
exit();            
}
    
}
    
/* Fin recaptcha V3 */

Comme cité plus haut, cette méthode n’est pas optimale.

Johann

Johann

Webmaster depuis 1996, Créateur de JeVendsLaBoutique.com, J’accompagne les Entrepreneurs passionnés et Freelances à développer leur activité sur Internet.

Partager cet article

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur whatsapp
Partager sur telegram
Partager sur email

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

A propos

Johann ROCHE

Webmaster depuis 1996, Créateur de JeVendsLaBoutique.com, J’accompagne les Entrepreneurs passionnés et Freelances à développer leur activité sur Internet.

Articles récents

Me suivre

✉️ Faire partie de mes contacts

  • Reçois toutes mes actus de freelance / webentrepreneur dans ta boite !