Facebook Pixel

Comment protéger le formulaire de commentaire WordPress contre les pourriels avec Google reCAPTCHA V3

Comment protéger le formulaire de commentaire WordPress contre les pourriels avec Google reCAPTCHA V3

Les sites WordPress sont souvent la cible de spams indésirables dans les commentaires. Ces spams peuvent en même temps compromettre la qualité des discussions, et affecter la crédibilité du site. Pour contrer cela, de nombreuses plateformes utilisent des systèmes de protection tels que Google reCAPTCHA V3. Dans cet article, nous explorerons comment intégrer et configurer Google reCAPTCHA V3 pour protéger efficacement le formulaire de commentaire WordPress contre les pourriels.

Comprendre Google reCAPTCHA V3

Google reCAPTCHA V3 est une solution de sécurité avancée qui utilise une approche basée sur le comportement des utilisateurs pour détecter et filtrer les bots malveillants. Contrairement aux versions précédentes, reCAPTCHA V3 fonctionne en arrière-plan, évaluant le comportement de l’utilisateur sans nécessiter une interaction directe, ce qui améliore l’expérience utilisateur.

Étapes pour intégrer Google reCAPTCHA V3 dans WordPress

Pour protéger vos formulaires de commentaires contre les pourriels, vous avez Plusieurs étapes à suivre que nous verrons plus bas.

1. Obtenir les clés API reCAPTCHA V3

Afin d’avoir les identifiants API du reCAPTCHA v3, vous devez suivre les étapes ci-dessous :

  • Allez sur le site web de Google reCAPTCHA et connectez-vous avec votre compte Google.
  • Créez un nouveau site web et choisissez le type reCAPTCHA V3.
  • Obtenez les clés API publiques et privées générées pour votre site.

Nous vous recommandons cet article qui explique mieux comment générer les identifiants.

Comment protéger le formulaire de commentaire WordPress contre les pourriels avec Google reCAPTCHA V3

2 – Choisir l’option de configuration qui vous convient.

Pour ajouter le reCAPTCHA v3 sur votre formulaire de commentaire, vous avez deux options :

  • Utiliser un plugin (Il en existe plusieurs, dans notre cas, nous parlerons du plugin « reCAPTCHA for WordPress”)
  • Développer vous-même directement à partir de votre thème WordPress (Si vous avez des notions en programmation web)

Utilisation du Plugin « reCAPTCHA for WordPress”

Pour une approche plus rapide, un plugin peut vous permettre d’ajouter le reCAPTCHA v3 sur vos formulaires de commentaire en quelques secondes. Veuillez agir avec précaution lorsque vous utilisez des plugins. En effet, une extension peut apporter plusieurs problèmes. À savoir :

  • Des failles de sécurité. Si le propriétaire du plugin de maintien pas ainsi se doit, vous pouvez, par exemple, faire face aux conséquences.
  • La performance. Un plugin peut parfois apporter des problèmes de performance. Notamment en ajoutant des CSS et JS supplémentaire à votre site web.
  • La gestion du site web. Si vous utilisez, par exemple, beaucoup de plugins, faire la gestion peut devenir complexe.

Il est cependant important de noter que les plugins rendent la vie très facile en vous permettant d’avoir ce que vous souhaitez le plus rapidement possible.

Ceci-dit, voici les étapes

 Installer et Activer le Plugin reCAPTCHA

  • Accédez au tableau de bord de votre site WordPress.
  • Dans le menu, allez à « Extensions » > « Ajouter une nouvelle ».
  • Recherchez le plugin « reCAPTCHA for WordPress » et installez-le.
  • Activez le plugin après l’installation.

 Configurer le Plugin reCAPTCHA

  • Allez dans « Réglages » > « reCAPTCHA » dans le tableau de bord.
  • Entrez vos clés API publiques et privées dans les champs correspondants.
  • Choisissez la version V3 de reCAPTCHA.
  • Configurez d’autres options selon vos préférences.

Intégrer reCAPTCHA dans le Formulaire de Commentaire

  • Dans le tableau de bord, accédez à « Apparence » > « Éditeur » et ouvrez le fichier du modèle de commentaire (comment.php).
  • Intégrez le code reCAPTCHA fourni par le plugin à l’endroit approprié dans le formulaire de commentaire.

Programmez l’ajout du reCAPTCHA v3 dans votre thème WordPress

Lorsque vous avez des compétences en programmation web, coder est généralement l’idéal. En effet, ça vous permet de mieux maintenir votre solution web et de minimiser les risques. Il est cependant important de comprendre que ce n’est pas pour tous. Si vous souhaitez travailler avec des experts pour l’implémentation du reCAPTCHA, contactez-nous.

Vous allez partiellement suivre les recommandations de ce tutoriel. Comment protéger votre site web contre les pourriels avec Google ReCAPTCHA V3 ou V2 [PHP + Extension WordPress]

À savoir :

  • Enregistrement de votre site web sur la plateforme Google reCAPTCHA
  • Étape 2 – Ajout des paramètres sur le formulaire et gestion des données côté client.

Ajouter champs du formulaire du reCAPTCHA sur vos formulaires de contact.

WordPress propose un filtre pour ajouter des champs supplémentaires sur le formulaire de commentaire. Pour ce faire, vous devez utiliser le filtre « comment_form »

Pour ajouter le champ du reCAPTCHA sur votre site web, vous devez utiliser une fonction semblable à ceci.


<?php 
function add_custom_fields_to_comment_form() {
    echo '<input type="hidden" name="reponsecaptcha" id="recaptcha2" value="">';
}

add_action('comment_form', 'add_custom_fields_to_comment_form');
?>

Intercepter le commentaire avant la publication dans WordPress

La vérification du reCAPTCHA consistera à intercepter le commentaire et valider que l’utilisateur n’est pas un robot avant d’insérer dans WordPress. Nous vous proposons un code semblable à ceci :


<?php 
function verifyRecaptcha($response) {
    $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
    $recaptcha_secret = get_field('recaptcha_secret', 'option');
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $recaptcha_url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('secret' => $recaptcha_secret, 'response' => $response)));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $capcharespo = curl_exec($ch);

    if(curl_errno($ch)){
        // Handle error, log the error message
      //  error_log('CURL Error: ' . curl_error($ch));
        return false;
    }
error_log('recaptcha_secret: ' . $recaptcha_secret);
    curl_close($ch);
    $Reponse = json_decode($capcharespo, true);

    if(isset($Reponse['success']) && $Reponse['success'] === true && isset($Reponse['score']) && $Reponse['score'] >= 0.5) {
        return true;
    }

    // Log the error codes if verification fails
    if(isset($Reponse['error-codes'])) {
       error_log('reCAPTCHA Error: ' . implode(',', $Reponse['error-codes']));
    }
    return false;
}



function custom_spam_validation($commentdata) {
    // Check if the comment author has passed your spam test
     $comment_content = isset($commentdata['comment_content']) ? $commentdata['comment_content'] : '';
    $reponsecaptcha = isset($_POST['reponsecaptcha']) ? $_POST['reponsecaptcha'] : '';

   if (!verifyRecaptcha($reponsecaptcha)) {
        // If spam test fails, you can customize the response or just exit
        wp_die('Sorry, your comment did not pass the spam test.');
    }

  // Remove unwanted HTML tags from the comment content
    $comment_content = wp_kses($comment_content, array(
        'a' => array(
            'href' => array(),
            'title' => array(),
        ),
        // Add more allowed tags and attributes as needed
    ));

    // Update the comment content in $commentdata
    $commentdata['comment_content'] = $comment_content;
   
  /// $commentdata['comment_content']  = "test";
    // If spam test passes, return the comment data
    return $commentdata;
}

add_filter('preprocess_comment', 'custom_spam_validation');
?>

Remarque: preprocess_comment est un filtre de WordPress qui permet d’intercepter le commentaire avant la publication. Vous pouvez l’utiliser pour empêcher les cybercriminelles d’envoyer les pourriels sur votre site web.

Conclusion

Pour protéger votre site web contre les pourriels avec un reCAPTCHA, vous pouvez utiliser soit un plugin ou le faire. Si vous avez besoin d’assistance, contactez-nous.

Gilblas Ngunte Possi

Gilblas Ngunte Possi

Fondateur et Développeur Full-Stack chez Prositeweb.

Ma maîtrise des outils modernes, combinée à un sens d’analyse approfondi des technologies de l’information, me permet d’offrir un accompagnement de qualité dans la conception et la mise en place de vos solutions web.

Laisser un commentaire

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

Gilblas Ngunte Possi

Gilblas
Répond généralement dans 1 heure

Gilblas
Salut👋

Comment puis-je vous aider?
1:40
Discutez avec nous