[Astuce] Comment débarrasser WordPress du spam … avec du CSS !
Le flot incessant de spams dont ce blog était victime ces derniers jours était tel que je ne pouvais rester sans rien faire. Non pas qu’Akismet ne faisait pas son job (aucun spam n’a été affiché), mais qu’être autant spammé m’énervait franchement :p
J’ai donc réfléchi à une solution (si si, ça m’arrive de cogiter ;-° ), et je me suis souvenu d’un billet que j’ai écrit il y a quelques temps, et qui expliquait comment utiliser le CSS (et une petite vérif’ en PHP) pour contrer les bots spammeurs.
N’écoutant que mon courage, j’ai entrepris d’adapter cette astuce pour WordPress, et ai commencé par éditer le fichier « style.css » de mon design pour y ajouter la class suivante :
.captcha {
display: none;
}
Vient ensuite l’ajout du champ dans le formulaire de réponse au commentaires (« comment.php » pour les non-habitués
). Pour ce faire, il m’a suffit d’insérer le code suivant :
Juste avant ce code là :
Dernière péripétie : la partie vérification en PHP. Rien de plus simple, je n’ai eu qu’à éditer le fichier « wp-comments-post.php » pour y ajouter le code suivant :
if(!empty($_POST['captcha']))
{
wp_die( __('Error: Bot attack !') );
}
Juste avant if ( get_option('require_name_email') && !$user->ID ) { (qui devrait ce trouver aux environs de la 50ème ligne)
Et voilà le travail ! A partir du moment où les modifications ont été apportées, Akismet s’est retrouvé au chômage technique xD
février 28th, 2008 à 0:45
Et la validité XHTML alors ? et non .
février 28th, 2008 à 0:46
et non *
Désolé du double post..
février 28th, 2008 à 9:13
en quoi cette astuce n’est pas valide xhtml ? (suis pas du tout expert en normes W3C :p )
février 28th, 2008 à 11:52
Sympa comme astuce, peu de bidouille pour pas mal d’efficacité je suppose… Mais par contre, les honnêtes humains qui visitent ton blog sans feuille de style se feront surement avoir aussi na:
février 28th, 2008 à 12:57
perso, j’en connais pas beaucoup des humains qui visitent ce blog sans charger la feuille de style xD
février 29th, 2008 à 17:44
Un honnête humain avec un handicap visuelle ne se feras-t-il pas piéger ? Je pense que oui, son logiciel lui dira de remplir ce chant.
février 29th, 2008 à 17:58
possible :s je ne sais pas vraiment comment fonctionnent les logiciels d’aide aux malvoyants neutre:
je vais voir pour me renseigner, et tenter de remédier à ça, merci de me l’avoir fait remarquer
février 29th, 2008 à 20:06
je ne suis pas expert en php, débutant on va dire, mais ton input captcha il sera rempli par quoi par les bots ?
le bot remplira obligatoirement ? parce que si j’ai bien compris, s’il rempli pas, il ne sera pas considérer comme un bot
février 29th, 2008 à 20:52
les bots, qui ne sont pas aussi intelligents que nous ( :p ), remplissent TOUS les champs d’un formulaire avec des chaines aléatoires (ou définies par le créateur du bot, ça dépend). ça leur permet de pouvoir attaquer tout type de formulaire.
Si le champ captcha (qui n’est visible que dans la source) est rempli, on sait que c’est un bot qui l’a fait (les bots ne voyant que la source des pages)
Ce qui est sympa avec cette astuce, outre sa simplicité, c’est qu’on peut changer le nom (et la class) du champ pour « berner » encore un peu plus les bots
février 29th, 2008 à 22:13
ok ok, bon ba je vais bookmarker cette page alors
février 29th, 2008 à 22:16
content d’avoir pu être utile à quelqu’un mdr:
mars 1st, 2008 à 21:08
[...] comment débarasser WordPress du spam avec de CSS by La Geek-Attitude [...]
mars 1st, 2008 à 23:53
Je ne comprends pas pourquoi tu ne mets pas simplement un ID pour le champ « captcha ». Le class et l’ID font doublon ! Un simple #captcha réduirait ton code en supprimant ainsi le class= »id » du HTML.
Sinon sympa l’astuce, si un jour Akismet et Bad Behavior sont dépassés, je m’en servirais volontiers !
mars 2nd, 2008 à 0:06
moi non plus je ne comprends pas pourquoi j’ai fait ce doublon neutre:
en tout cas merci de me l’avoir fait remarquer (c’est corrigé
)
mars 2nd, 2008 à 14:58
Cette technique est utilisée depuis belle lurette et est en effet très efficace. Une sorte de test de Turing en CSS en somme. Par contre, il serait judicieux de préciser que ce champ n’est pas à remplir et sert d’antispam, quitte à faire disparaitre cette mention avec ton display: none;. Et si tu cherches des personnes qui visitent les sites en désactivant le CSS, ne cherche pas bien loin : lynx est très utile pour naviguer sous la console linux et je m’en sers assez régulièrement, surtout lors d’une panne de mon serveur X, et il m’arrive également de désactiver les CSS lorsque je navigue avec mon smartphone, l’affichage d’un site étant parfois hasardeux sur des petits écrans.
mars 4th, 2008 à 23:24
bien vu, je modifierai donc mon billet, ainsi que le code du blog en conséquence (enfin, quand j’aurai un peu plus de temps mdr: )