Accueil > SPIP > Gérer les IP spammeuses avec un squelette

Gérer les IP spammeuses avec un squelette

jeudi 24 juin 2010, par François Rygaert (aka Suske)

Par principe, on peut souhaiter laisser les forums de son site ouvert aux posteurs anonymes. Le plugin "NoSpam" s’impose alors mais en ce qui me concerne, j’y ajoute une petite couche (en squelettes). Le principe est que rien ne change si l’utilisateur est connecté puisqu’on ne visera que les posteurs anonymes et dont l’adresse IP a posté des commentaires qui ont été modérés, supprimés via l’interface privée de SPIP.

Pour l’activation du plugin NoSpam, je vous renvoie à la documentation. Il fonctionne bien et rend nettement service. Quelques détails :
 très peu de spams sont affichés directement sur le site public. La plupart du temps, ces messages sont placés "en attente de validation". L’administrateur peut les supprimer (ou les publier s’il s’agit d’un faux positif).
 les spams "à la chaîne", effectués par des robots, sont bloqués. La plupart du temps, seul le premier message est accepté mais il est modéré comme expliqué ci-dessus.
 de plus en plus, hélàs, le spam est fait "à la main"... Dans ce cas, le premier message est souvent publié, mais les suivants sont mis en attente.
 N’empêche, à la longue, même dans l’espace privé, ces listes de messages à supprimer s’allongent parfois et font perdre leur temps aux adminsitrateurs. Comme l’expérience m’a montré qu’en outre ces spams "manuels" proviennent souvent d’une même adresse IP, cela m’a motivé à rajouter une couche.

La suite de l’exemple est du code qui me sert sur des sites dotés du plugin "SpipClear" (dont ici :-) ), il y a quelques adaptations à faire pour rendre ceci générique mais je réserve cela à la mise en plugin de la chose et ne résiste pas plus longtemps au plaisir de partager.

Tout d’abord, il me faut une mini-fonction qui me permettra de récupérer l’adresse IP de la personne connectée. Dans /squelettes/mes_fonctions.php [1], je mets donc :

Ensuite, j’écris un bout de squelette que je place dans /squelettes/spam.html

Enfin, dans mon squelette d’appel, je modifie l’appel des forums afin de tester, si nécessaire, l’adresse IP du visiteur non-connecté.

Voilà, voilà. Je crois que ce futur plugin est promis à un bel avenir, surtout si on rend configurable la période analysée et le nombre de modérations avant blocage de l’IP.


[1Merci à denisb pour l’amélioration de la détection IP : $ip_vis = $_SERVER["REMOTE_ADDR"] ; est un peu léger semble-t-il

Messages

Un message, un commentaire ?

Forum sur abonnement

Pour participer à ce forum, vous devez vous enregistrer au préalable. Merci d’indiquer ci-dessous l’identifiant personnel qui vous a été fourni. Si vous n’êtes pas enregistré, vous devez vous inscrire.