Comment irriter les spammers qui abusent de votre formulaire de contact

Depuis quelques temps, je reçois une quantité déraisonnable de requêtes à partir de mes formulaires de contact, provenant de spammers qui voudraient suggérer leurs « services » pour aider au référencement de mes sites web. Ce ne sont pas des robots, mais bien des personnes employées pour faire ça manuellement, question de contourner les systèmes anti-spam automatiques. Il est fort probable, en plus, que ce service de référencement web soit frauduleux. Ça arrive pratiquement tous les jours, et souvent, ce sont les mêmes personnes, avec le même message répétitif, qui m’envoient ces courriels. À la fin, quand on les additionne, ça devient franchement agaçant et c’est plutôt irrespectueux de leur part.

Je n’ai donc pas de scrupules à vous partager le petit morceau de code javascript que j’ai décidé d’ajouter à mon formulaire pour les dissuader. Ces gens passent probablement une grande partie de la journée à envoyer mécaniquement ces messages à tous les sites d’intérêt, probablement ceux qui ont une valeur PageRank Google élevée. Donc, comme les travailleurs en telemarketing, ils ne veulent surtout pas perdre de temps, puisque la stratégie de leur procédé est d’en envoyer le plus possible dans l’espoir qu’une victime morde à l’hameçon. Ce que nous allons essayer de ralentir.

Ces spammers utilisent couramment des termes habituels dans leurs message. Par exemple, voici le dernier message qui m’a été envoyé:

Dear site owner
We are interested to increase traffic to your website, please get back
to us in order to discuss the possibility in further detail.
Thanks

Ou un autre récemment:

Do you wish you could increase your new business? Getting a GUARANTEED 1ST PAGE GOOGLE RANKING is more cost-effective than you might think. We have helped hundreds of businesses attract new customers in this market and we can help you! Our results are 100% guaranteed. Simply hit reply and I’ll share with you the cost and the benefits. See you at the top!“In order for us to respond to your request for information, please include your company’s website address (mandatory) and or phone number.”

Le terme « traffic » revient toujours. Ainsi que « leads », « guaranteed », « ethical », « ranking », « optimization », etc. Ces termes sont aussi rarement utilisés, voir jamais, par les utilisateurs réguliers de mes sites, surtout pour mes sites francophones.

Observation: les adresses IP de ces messages proviennent la plupart du temps de l’Inde. Bloquer entièrement ce pays de votre page contact pourrait être une autre option.

Avec Javascript, je vais chercher ces mots-clés afin d’exécuter une fonction qui va paralyser temporairement leur navigateur web, question de s’amuser à leur dépens. En premier lieu, il faut appeler Javascript dans le bouton d’envoi pour trouver ces mots-clés. Voici un formulaire typique, version simplifiée:

<form method="POST" action="contact_envoi.php" name="contact">
 
Courriel:<br>
<input type="text" name="courriel" size="40" /><br><br>
 
Message:<br>
<textarea name="message" rows="10" cols="60"></textarea><br><br>
 
<input type="button" value="Envoyer" onclick="if (valider()) contact.submit();">
 
</form>

Au clic du bouton Envoyer, la fonction valider() est appelée pour vérifier le contenu du message avant de l’envoyer.

1
2
3
function valider() {
	var message=document.contact.message.value;
}

Maintenant, ajoutons notre fonction irritante. Je l’ai trouvée en faisant la recherche « most annoying web page » avec Google dans le but de trouver une inspiration.

1
2
3
4
5
6
7
8
9
10
11
function valider() {
	var message=document.contact.message.value;
 
        termes_spam = new RegExp("traffic|google|ranking|marketing|optimization|campaign| seo |white hat", "i");
 
	if (message.match(termes_spam)) {
		alert("Hello There!");alert("Sorry to tell you this");alert("but this page");alert("is really going to annoy you.");alert("I don't know why");alert("I created this page");alert("but it will annoy you.");alert("Don't feel bad");alert("about yourself");alert("you haven't done anything to deserve this");alert("you haven't been rude");alert("or hurt somebody's feelings.");alert("But for no reason ");alert("whatsoever");alert("I think you deserve to be annoyed.");alert("You are probably");alert("a very nice person");alert("who wouldn't hurt a fly.");alert("If that's the case");alert("then I apologise.");alert("This really will irritate you");alert("this really will make you mad");alert("but I think it's funny");alert("I have a terrible sense of humour");alert("Ha! Ha! Ha!");alert("and once more - Ha!");alert("Hopefully you will think");alert("that this is funny");alert("but you probably won't");alert("you wil find");alert("it EXTREMELY irritating.");alert("Some fun, huh?");alert("Don't get me wrong");alert("I don't think you're an idiot");alert("or a moron");alert("or a loser");alert("or a cheapskate.");alert("but I still want");alert("to annoy you.");alert("Look, don't take it");alert("personally.");alert("I'm not here to judge you");alert("or tell you that");alert("there's anything wrong with you.");alert("My sole function here");alert("is to");alert("annoy you.");alert("The word 'annoy'");alert("dates from");alert("the 13th century.");alert("The Merriam Webster Dictionary");alert("defines the word as meaning");alert("to disturb or irritate ");alert("especially by ");alert("repeated acts");alert("Like this.");alert("It's annoying");alert("to have to keep closing these boxes");alert("one after another");alert("just to have another box");alert("come right at you.");alert("And there's no way around it.");alert("You have to keep clicking 'okay' ");alert("again");alert("and again");alert("and again");alert("and again.");alert("AND AGAIN!!!");alert("It's annoying");alert("because it's supposed to be");alert("and there's no way out");alert("until it's over.");alert("So sit back");alert("stretch your fingers ");alert("and get ready to be");alert("annoyed.");alert("This is how it works:");alert("I get to say anything I want");alert("and you have to agree with it.");alert("Before too long");alert("you will become convinced ");alert("that your computer is ");alert("talking to you.");alert("But don't tell anybody that");alert("or they will think that");alert("you're paranoid.");alert("Paranoia");alert("will destroy you.");alert("It's not true, of course.");alert("You know that ");alert("and I know that.");alert("You're not parANOID");alert("You're just getting ANNOYED");alert("Literally.");alert("Because I'm obviously");alert("warped and demented");alert("and had nothing better to do");alert("than trick you into");alert("visiting this page.");alert("Some practical joke! Eh?");alert("You're probably wondering");alert("How long this could go on.");alert("You might be hoping");alert("that it's almost over.");alert("I guess it all depends on you.");alert("How badly do you want this to stop?");alert("How much more can you stand?");alert("I'd like to help you");alert("by stopping ");alert("and letting you get on your way");alert("so I will");alert("in a minute.");alert("First, though,");alert("You've got to think about");alert("who you know");alert("that deserves to be annoyed today.");alert("Can you think of anyone");alert("you would like to annoy?");alert("Surely some of your friends ");alert("or co-workers");alert("have annoyed you.");alert("Here's your chance");alert("to get them back");alert("so tell them");alert("to visit this page.");alert("There is no limit");alert("to the amount of people");alert("that we can annoy together");alert("You and me.");alert("We make a great team!");alert("I'm so glad you came along.");alert("I never dreamed this would be so rewarding");alert("I'm even sorry");alert("that this has");alert("to stop");alert("Goodbye!!");
 
	return false;
	}
}

Si on trouve un des termes recherchés, cette fonction oblige le visiteur à cliquer une centaine de boites de dialogue (dialog box), au contenu sans intérêt, sans pouvoir passer à autre chose ou fermer le navigateur, avant de finalement se faire refuser l’envoi du message avec la commande finale return false.

Un 5 minutes qui ne risque pas d’égayer leur journée. Avec un peu d’espoir, ils seraient même tentés de rayer mes sites de leur liste, mais je ne me fait pas d’idées, considérant le caractère typique des spammers.

Voici une version plus élémentaire pour vous protéger que j’utilise dans les sites où je dois rester poli:

termes_spam = new RegExp("traffic|google|ranking|marketing|optimization|campaign| seo |white hat", "i");
if (message.match(termes_spam)) {
	alert("No unsolicited commercial emails allowed");
	return false;
}

En réponses à quelques commentaires sur cet articles, j’aimerais préciser que ce script est plutôt un amusement à leur dépends. Pour une protection réelle du formulaire, veuillez vous référer à la page suivante:

Protéger votre formulaire de contact contre les spammers et hackers

Partager cet article:

  • del.icio.us
  • Facebook
  • StumbleUpon
  • Twitter
  • LinkedIn

Catégories: Gestion de site web, Programmation web | 6 commentaires »
Les tags de cet article: ,

Note: Merci pour vos commentaires, j'apprécie ceux qui partagent leurs avis et leurs expériences de webmestre, ou s'il y a lieu, indiquent une erreur dans mes tutoriels, mais je ne peux évidemment pas faire de support technique pour votre site, alors veuillez éviter d'en faire la demande dans cette section.

6 commentaires pour “Comment irriter les spammers qui abusent de votre formulaire de contact”

  1. Yavuz dit: 1 décembre 2009 at 9:00

    Méthode originale et astucieuse !

    Je pense qu’ils vont vite abandonner.

    Merci pour votre méthode.

  2. Jerome (SpeedAirMan) dit: 25 décembre 2009 at 10:10

    Géniale comme astuce, j’adore !
    C’est un peu vicieux en plus.
    Bien sûr il faut qu’ils aient JavaScript d’activé, mais il y’a de grandes chances qu’il le soit (et sinon, de toutes façons(et au vu du code) le formulaire ne devraient pas permettre d’envoyer le message).

  3. Thunder dit: 30 décembre 2009 at 5:57

    Pas mal l’astuce mais j’ai bien peur que les spammers utilisent des robots pour spammer des milliers de sites en peu de temps et donc le robot n’interprète pas le code JS.

    Pour que le code soit complet, il faut faire une vérification côté serveur.

    Bonne continuation

  4. ActuaRef dit: 2 janvier 2010 at 19:35

    Merci pour ce script. En effet, ça peut être efficace, quel que soit le type de texte qui se répète inlassablement… ( Idem pour les post avec des termes peu reluisant )

    Et en php ça peut donner quoi ? Ca pourrai contrer le fait que le javascript ne soit pas activer sur son navigateur : )

    Bonne année à tous ;)

  5. Webmart dit: 2 janvier 2010 at 20:07

    Ce script javascript est plutôt un amusement à leur dépends. Pour une protection réelle du formulaire, veuillez vous référer à la page suivante:

    Protéger votre formulaire de contact contre les spammers et hackers
    http://www.coinduwebmaster.com/proteger-formulaire-contact-spammers-hackers/95/

  6. Olivier dit: 30 mars 2010 at 16:39

    Sympa mais bon au final il suffit de rester sur la touche Entrée de son clavier et attendre quelques secondes pour que les boites soient validées….

    Donc perso pas trop utile, SAUF si on rajoute (ou change) le bout de script qui à l’approche de la souris fait bouger la boite windows sur la droite/gauche/haut ou bas et donc impossible de cliquer sur Enter, et là il reste plus qu’à killer son navigateur, et là au moins c’est plus efficace !
    N’est-ce pas :o)

Laisser un commentaire