Vous allez découvrir comment éviter les spams sur votre site WordPress avec la technique du honeypot (pot de miel).
Le pot de miel est une façon de piéger les robots spammeurs qui parcourent la toile.
Lorsque vous rencontrez un problème sur votre site WordPress, et plus précisément sur la reception répétée d’e-mails publicitaires, il vous est possible de réparer WordPress en utilisant une technique dont le principe est simple.
Besoin d’un spécialiste WordPress pour votre projet ? Contactez-moi
La technique consiste à ajouter un champ de saisie factice dans votre formulaire, celui-ci étant destiné à ne pas être rempli, du moins par un humain.
Pour cela, le champ est masqué aux visiteurs, ainsi le robot spammeur étant programmé pour remplir tous les champs de votre formulaire sans distinctions, va renseigner ce champ est sera directement étiqueté comme spam.
1. Ajouter un champ dans votre formulaire
Le champ de saisie que vous allez rajouter, est un champ factice uniquement destiné à tromper les robots.
Ce champ sera masqué visuellement de l’utilisateur, et en le remplissant le robots destiné à vous spammer se trahira lui-même et déclenchera une fonction spéciale.
Dans votre formulaire Contact Form 7 :
Voici le code à ajouter dans votre formulaire CF7 pour ajouter votre honeypot
[text fake-field]
Ce qui aura pour rendu en HTML :
Voici le rendu
<div class="fake"><input name="fake-field"></div>
2. Masquer le champ par CSS
Dans votre fichier CSS ou dans votre code HTML :
form .fake{display:none}
3. Créer une fausse page de confirmation
Certains robots vont chercher à savoir si le message à bien été envoyé, et pour ce faire ils vont vérifier que le formulaire renvoie bien vers une page de confirmation. Vous allez donc en créer une, spécialement dediée aux spammeurs.
Besoin d’un spécialiste WordPress pour votre projet ? Contactez-moi
Votre fausse page sera page exemple :
http://www.monsite.com/fake-confirmation/
4. Ajouter la fonction de redirection
Voici donc la fonction à utiliser avec le plugin Contact Form 7 pour bloquer l’envoi de l’email et rediriger les faussaires vers votre page factice.
Besoin d’un spécialiste WordPress pour votre projet ? Contactez-moi
Ce code est à rajouter dans votre fichier functions.php de votre thème WordPress :
// On désactive le Javascript de CF7 par défaut add_filter( 'wpcf7_load_js', '__return_false' ); add_filter( 'wpcf7_load_css', '__return_false' ); function func1234_wpcf7_antispam_fake_input($cf7) { // if you wanna check the ID of the Form $wpcf->id if(isset($_POST['fake-field']) && $_POST['fake-field'] != ''){ wp_safe_redirect( get_bloginfo("url") . '/fake-confirmation/'); exit; } } // perform the check when the_posts() function is called add_action("wpcf7_before_send_mail", "func1234_wpcf7_antispam_fake_input");
Si vous souhaitez faire de même sans WordPress
Voici le code à utiliser en PHP simple :
if(isset($_POST['fake-field']) && $_POST['fake-field'] != ''){ header('Location: http://www.monsite.com/fake-confirmation/'); exit('Redirecting you to http://www.monsite.com/fake-confirmation/'); } else { // OK, envoyer l'email }
Conclusion
La technique du honeypot permet en complément de sécuriser un formulaire face aux bots de spam et ceci sans utiliser captcha. Vous pouvez aussi Un anti-spam WordPress sans captcha : Le questionnaire pour éviter les spams.
Autre source : stackoverflow.com