Spams de commentaires

WRInaute discret
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";
		}
 
WRInaute accro
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/
 
WRInaute accro
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).
 
WRInaute discret
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, à +,
 
WRInaute occasionnel
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.
 
WRInaute occasionnel
Mettre des noms qui ne veulent rien dire aux champs du formulaire et plus fort, les changer automatiquement et aléatoirement.
 
Olivier Duffez (admin)
Membre du personnel
ajouter un champ texte rendu invisible par CSS, et annule l'envoi du formulaire au cas où ce champ est rempli (par les robots)
 
WRInaute accro
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 :)
 
Olivier Duffez (admin)
Membre du personnel
et tu fais comment pour modifier le contenu d'un champ hidden ? le robot ne peut pas le faire a priori
 
WRInaute passionné
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...
 
WRInaute accro
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.
 
WRInaute accro
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é.
 
WRInaute accro
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 ;)
 
Olivier Duffez (admin)
Membre du personnel
non a priori l'aveugle pourra savoir que c'est un champ à ne pas remplir (grâce à l'attribut title par exemple)
 
Discussions similaires
Haut