Spams de commentaires

Bonjour à tous,

J'ai un problème de spams de commentaires dont je n'arrive pas à me débarrasser.

Bizarrement ce sont 2 pages qui sont principalement visées :
http://www.espritcabane.com/faire-peinture/lait-de-chaux.php
http://www.espritcabane.com/fabriquer/tete-lit.php

J'ai suivi les conseils Google :
- mise a jour du fichier robots.txt (quelqu'un a t-il un lien récent ? Je n'ai pas trouvé de liste de robots spammeurs vraiment à jour)
- désactivation des liens hypertexte dans les commentaires
- liens en "nofollow"

Est-ce que je pourrais améliorer mon code pour ne pas afficher les commentaires où s'affichent + de 2 url ?

Code:
if ( $nbResults > 0 )
	{
	while ( $enr = mysql_fetch_array($sql) )
		{
		$auteur	= $enr[0];
		$email	= $enr[1];
		$texte	= $enr[2];
		$date	= $enr[3];

		if (!$allow_HTML)  $texte = htmlspecialchars($texte);
		if ($wordwrap)     $texte = nl2br($texte);
		$texte = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])", "<href=\"\\1://\\2\\3\" rel=\"_nofollow\" target=\"_blank\">[url]</a>", $texte);
		$texte = preg_replace('/([^ ]{'.$longueur_max_mot.'})/si','\\1 ',$texte);
		if ($smilies) { include('config/smilies.inc.php'); }

		if ( empty($email) ) $auteur = '<b>'.htmlspecialchars($auteur).'</b>';
		elseif ( !empty($email) ) $auteur = '<a href="mailto:'.$email.'" title="'.$email.'"><u>'.htmlspecialchars($auteur).'</u></a>';

		$auteur_email = str_replace('{DATE}', affiche_date($date), str_replace('{AUTEUR}', $auteur, $str_nom_date));

		echo '<table align="center" width="100%" cellpadding="2" cellspacing="0" border="0" bgcolor="'.$cadre_formulaire_couleur.'"><tr><td>'."\n";
		echo '<table cellpadding="3" cellspacing="0" border="0" align="center" width="100%" bgcolor="'.$formulaire_couleur.'">'."\n";
		echo '<tr><td valign=top background="'.$background_img.'">'.$auteur_email.'</td></tr>'."\n";
	        echo '<tr><td><span class="commentaire">'.$texte.'</span></td></tr>';
		echo '</table>'."\n";
		echo '</td></table>'."\n";
		echo ''."\n";
		}
 
Tous ces conseils n'empêcheront pas les commentaires, qui sont postés par des robots. Ils ne font donc pas attentions aux nofollow, au robots.txt et le fait que les liens ne soient pas hypertexte.

Une solution serait d'utiliser l'API Akismet par exemple pour détecter les spams.
http://akismet.com/development/api/
 
Perso j'ai pamplemousse sur mon dotclear et une fois qu'on lui a bien fait manger quelques mots-clés, ca tourne nickel. Donc +1 pour la solution de kazhar (Akismet étant je plus bien mieux que Spamplemousse).
 
Oui Askimet est super efficace, je confirme, je l'utilise pour le blog WordPress mais pour le site (pro) se serait payant et cher... Et puis je crois avoir lu que ça ajoute une requête sur leurs propres serveurs

Le script de commentaires que j'utilise est basé sur un script php (Les Commentaires v2.2 par Laurent Adda)
http://www.phpscripts-fr.net/scripts/scripts.php?cat=Commentaires
customisé maison...
Je viens de virer l'entrée Site/Blog que j'avais rajouté
et visiblement tout ça a bien calmé les robots....
Je vous tiens au courant, pour ceux que ça interresseraient d'installer le script,
merci, à +,
 
Tu peux utiliser un système de captcha manuel. Proposer aux visiteurs de répondre à une question très simple, de calculer une opération, recopier un mot, etc. Je ne pense pas que les robots spammeurs puissent encore parvenir à les contourner.
 
Mettre des noms qui ne veulent rien dire aux champs du formulaire et plus fort, les changer automatiquement et aléatoirement.
 
ajouter un champ texte rendu invisible par CSS, et annule l'envoi du formulaire au cas où ce champ est rempli (par les robots)
 
WebRankInfo a dit:
ajouter un champ texte rendu invisible par CSS, et annule l'envoi du formulaire au cas où ce champ est rempli (par les robots)

Avec un champ hidden tout simple ça marche très bien aussi :-)
 
et tu fais comment pour modifier le contenu d'un champ hidden ? le robot ne peut pas le faire a priori
 
WebRankInfo a dit:
ajouter un champ texte rendu invisible par CSS, et annule l'envoi du formulaire au cas où ce champ est rempli (par les robots)

Excellente idée, je n'y avais jamais pensé :wink:
Beaucoup plus pratique que le captcha...
 
Ce que je faisais à une époque, c'était le contraire : ajouter un champ hidden en javascript.
Et si il n'est pas présent, c'est un robot.
 
kazhar a dit:
Ce que je faisais à une époque, c'était le contraire : ajouter un champ hidden en javascript.
Et si il n'est pas présent, c'est un robot.

Pas con, et sans doute plus correct niveau accessibilité.
 
Pas con, et sans doute plus correct niveau accessibilité.
Par vraiment en fait :)
Si le navigateur de l'utilisateur, pour une raison quelconque, n'a pas javascript d'activé, il est grillé.

Après, cela dépends du public. C'était sur mon blog, qui traite de développement web.
Peu de chances donc que des aveugles, avec un lecteur d'écran ne viennent fouiller dessus ;)
 
non a priori l'aveugle pourra savoir que c'est un champ à ne pas remplir (grâce à l'attribut title par exemple)
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut