Aller au contenu

Bloquer le spam en php


Sujets conseillés

Posté

Salutations :)

Je cherche à sécuriser un script pour photoblog (codé en php) contre le spam dans les commentaires.

Ma première idée a été de créer mon propre système Captcha. Jusque là, aucun problème, ça fonctionne très bien. Seulement, je sais que les systèmes Captcha peuvent être un peu embettant pour les visiteurs, donc je cherche une façon de bloquer les messages envoyés par des spammeurs à l'aide d'une méthode qui serait "invisible", c'est-à-dire, une méthode qui ne forcerait pas le visiteur à effectuer une manipulation spéciale. J'ai d'abord pensé à vérifier les headers du visiteur, malheureusement, je ne vois pas comment différencier un spammeur d'un visiteur normal.

Quelqu'un a une idée pour m'aider à faire ça ?

Merci d'avance pour votre aide :)

Posté

En fait c'est tout simple, il suffit de tester la variable php $_POST['spam']

if ($_POST['spam']) die()

:blush:

Bon ça marche pas ok, à mon avis il n'y a pas moyen d'identifier un spammer sur ses header, ni sur son IP, qui change à chaque fois.

J'ai une autre piste à te proposer : vu que 99% du spam est en langue anglaise, tu peux essayer de définier une liste de mots clé "interdits" qui bloquent le spam. Cette liste sera à mettre à jour au fur et à mesure. C'est la méthode que j'utilise. elle est pas parfaite car elle demande de la maintenance, mais c'est toujours ça. Je te donne ma liste de mots provisoire :

$mots_interdits=array("xwiki", "nensi-musik", "metform", "freehostpro","tekcities", "best site","nice site","top site", "greetings from","tehniks","usmle","pussy", "wellbutrin", "warez","website","Software", "getfunhere","health","insurance",".ru", "kony","funnyhost","viagra","ephedrine",".tt", "boards2go","phentermine", "levitra","vicodin","bestnum","valium",".co.uk", "ultram","tramadol","lol.to","zoloft", "lortab","fioricet","hydrocodone","diazepam", "adipex","didrex","xanax","hydrocodone", "meridia","tenuate","ambien ","Good job guys","Very nice site","Real good stuff", "Appreciate it men", "network54","butalbital","carisoprodol","butalbital","bravenet", ".to","casino","nexium","zyban", "Really cool", "blackjack","online","cheap","asphost","melodysoft", "ringtones"," cialis","dirare","areaseo","zovirax","generic", "pharmarkg","flexeril","propecia", "serifos","dorhuya", "Great work","buying","auto.blogspot","cars.blogspot", "a-j-i",".info/","insurance","Thanks!","Hi guys");

Posté

S'il y avait une méthode pour contrer le spam, tu penses bien que les autres sites n'auraient pas besoin de le contrer avec un captcha ;)

Sinon, malheureusement, les spams en français se multiplient, et la méthode de jeroen est loin d'être infaillible (même si elle peut limiter le spam), elle a aussi beaucoup de risque de bloquer un message légitime contenant un/des anglicisme(s).

Salut les gars ! j'ai essayé de tester la présence de mon website sur google.co.uk, mais quand j'effectue la requête, c'est un site de casino qui ressort en premier.

Comment faire pour apparaître dans leur liste ?

PS: je suis chez online.

Thanks !

Ce message ne passerait pas, pour 5 raisons distinctes, alors qu'il est tout à fait légitime.

Posté

Bonjour,

J'utilise depuis peu une technique radicale pour bloquer les spam sur mon livre d'or, ça a l'air de marcher pour le moment :

if (substr_count($_POST['message'], "http://") >=2) die("Espèce de spameur !");

En gros : j'interdis la présence de plus d'une URL dans le message posté.

Sinon, la meilleure méthode reste un système d'identification complet.

Posté

Pour un forum, effectivement, c'est trop restrictif.

Mais dès le moment où il faut s'inscrire, les robots abandonnent vite même s'il peuvent procéder à une inscription automatique sans problème.

Posté

Tout d'abord, merci pour les réponses :)

Je vais probablement tenter ma chance avec une liste de mots clés à bannir. On verra ce que cela va donner.

Une dernière question. Je ne connais pas beaucoup les techniques qu'utilises les spammeurs, mais est-ce que leurs robots prennent les cookies et les sessions php ?

Parce que si ce n'est pas le cas, il y aurait là une façon très simple de les bloquer.

En attendant, merci encore pour votre aide rapide.

Posté

Oui : je pense à l'instant à deux possibilité :

- Vérifier la présence d'un cookie (qui serait balancé dans la session)

ou

- vérifier que l'ip a demandé une page il y a moins de 10 minutes (ou au moins une partie de l'ip, pour ne pas bloquer ceux qui surfent avec aol)

Vous en pensez quoi ??

Posté

Dans mon cas, la vérification de l'ip pourrait causer des problèmes : lorsque le visiteur arrive sur la page d'accueil, il a la possibilité de laisser un commentaire directement sur cette page. Or, je ne veux pas forcer les visiteurs à attendre 10 minutes chaque fois pour poster un commentaire :wacko:

Reste à savoir si la méthode des cookies fonctionne. Je vais la tester bientôt.

Posté

Pour ceux qui voudraient savoir, j'ai testé l'idée de bloquer un internaute qui n'accepterait pas les cookies avec un script rudimentaire de spam, et jusqu'à maintenant, ça a l'air de fonctionner. Tant mieux :)

Posté

Sinon, tu peux aussi tenter un captcha accessible, composé d'une question, et d'une réponse simple, du genre :

Q- Quelle est la couleur du cheval blanc d'Henri IV ?

R- blanc

Un peu fastidieux à mettre en place (il faut faire une base conséquente de questions-réponses), mais accessible et (logiquement) infaillible.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...