Voir plus

Un formulaire anti-spam sans captcha, ni artifice

C‘est Spookev (auteur de peeklife et récemment de MonHmaF) qui a écrit tout bêtement ce petit bout de code, et vous allez voir que l’idée, est à la fois très bonne et vraiment simple à mettre en place. Ce qui est même étonnant, c’est que cette idée n’ait pas déjà été exploitée avant, en tout cas, à ma connaissance. Il est parti du principe que les bots (ces robots spammeurs) sont suffisamment assez bêtes pour vouloir remplir tous les champs dans un formulaire.

Il suffit donc de créer un champ texte supplémentaire, de le rendre invisible avec du CSS, et surtout, de le faire analyser, grâce au javascript, ou au PHP, avant l’envoi final. Si ce champ reste vide, on estime qu’on a pas à faire à un bot, et on valide définitivement l’envoi. Si, au contraire, ce champ texte contient quelque chose, l’envoi n’est alors pas pris en compte.

Logiquement, comme ce champ « spécial » est caché, il n’y a pas de raison pour qu’un véritable utilisateur le remplisse. Toutefois, pour ceux qui désactivent dans leur navigateur les feuilles de style (les aveugles, ou ceux qui ont besoin d’un maximum d’accessibilité), il faut indiquer que ce champ texte doit être laisser vide. Mais n’oublions pas que les robots sont toujours mieux programmés, et ils seraient capable d’analyser ce qui est écrit avant ou après le champ pour réagir en conséquence. Il faudrait donc éviter des mots comme « vide », ou « ne pas remplir ». On pourrait placer, par exemple, quelque chose comme : « ici, il faut mettre le cerveau d’une blonde ».

Voici donc le code à ajouter dans le formulaire.

#
# Le formulaire Type en HTML (par Spookev)
#
 
<form action="traitement.php" name="votreForm" method="post">
<input class="ccab" name="host" type="text" value=""/> <!--VOICI LE CHAMP CACHE-->
<input class="" name="champ1" type="text" value=""/><br />
<input class="" name="champ2" type="text" value=""/><br />
<input class="" name="cham3" type="text" value=""/><br />
<input type="button" value="Envoyer" onclick="javascript:verifForm('Bien envoyé');"/> <!--N'OUBLIEZ PAS LE onclick AVEC LA FONCTION verifForm() -->
</form>

Dans votre fichier CSS, ajoutez ceci, pour justement cacher ce champ « spécial »

.ccab { display: none; }

L’analyse par la méthode javascript

#
# Le script de détection en JavaScript (par Spookev)
#
<script type="text/javascript">
// Il serait préférable de mettre ce script dans un fichier JS //
function verifForm(okform)
{
    if(document.forms['votreForm'].elements['host'].value == '')
    { // On teste si 'host' est vide
        alert(okform);    // Il est vide, on ouvre une alerte (ou pas, dans ce cas, commenter cette ligne)
        document.forms['votreForm'].submit(); // On envoi le formulaire, tous les champs sont remplis et
    'host' est vide    
    }
    else
    {
        document.location='http://www.fuckspam.com/';
    // Si le champ 'host' est rempli, on redirige le robot vers un super site :D
    }
}
</script>

La « même » analyse mais en php, à choisir

#
# Complémentaire : La détection via PHP (par GeekArlier)
#
<?php
if(isset($_POST['host']) && empty($_POST['host'])) //Si "host" est vide
{
     //On continue le traitement de données
}
else //Sinon
{
    //Sachant qu'on a très probablement affaire à un bot, inutile de renvoyer un message d'erreur =)
    //Vous pouvez cependant en profiter pour blacklister l'ip du robot spammeur si nécessaire...
    //Ces données peuvent également servir pour des statistiques.
}
?>

Merci à ma source

D’après ces premiers retours d’analyses, il semble que les bots se soient pour le moment fait avoir à 100%. Si vous avez des remarques, n’hésitez pas à utiliser les commentaires.

Articles pouvant vous intéresser

# Envie de faire connaître cet article ?

twitter vote Blogonet vote Wikio vote Yahoo Vote Google vote facebook vote
http://bit.ly/bK9LeV
http://neosting.net/aide-tutoriel/un-formulaire-anti-spam-sans-captcha-ni-artifice.html

Rechercher sur ce blog avec Google

Chargement...

3 commentaires

#1. Spookev a dit le 3 février 2010 à 16:21

Héhé, super :D


#2. Xyo a dit le 3 février 2010 à 17:56

Cette expérience est très pratique.
Je l’utilise sur un site avec une audience de 150k visiteurs par mois et la baisse de SPAM a été significative.


#3. NeoSting a dit le 4 février 2010 à 03:53

Merci pour ton retour. ;)


# Poster un commentaire

Votre adresse email ne sera jamais publiée ou revendue à des tiers. Les champs marqués d'un astérisque (*) sont obligatoires.

balises HTML autorisées : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Le Calendrier des posts

2010 01 02 03 04 05 06 07 08 09 10 11 12
2009 01 02 03 04 05 06 07 08 09 10 11 12
2008 01 02 03 04 05 06 07 08 09 10 11 12
2007 01 02 03 04 05 06 07 08 09 10 11 12

Your Ad Here Your Ad Here


Vous en parlez sur ce blog

  • lodepois: http://www.1fichier.com Support FTP pour l’upload...
  • dracou: salut l’ami merci de ta reponse rapide tout etait...
  • dracou: salut j’ai fait connaissance avec super module mais...
  • Benoist: Encore merci pour ce tutorial que je viens de fusionner...
  • Benoist: Je tenais à te remercier car tu viens de me faire gagner...
  • Robic: Marrant de me retrouvée là, j’en découvre des trucs en...
  • Pasc: J’approuve, je confirme et j’insiste auprès de...
  • Nicolas: Je ne connais pas encore Spotify, j’aimerai bien le...
  • Jay: Foxapet, c’est de la bombe !
  • Elodie: Qui ne tente rien n’a rien alors me voici :D

Envie de changer de fond d'écran ?

Syndications et mentions légales

Creative Commons License Use OpenDNS add page

neosting.net by NeoSting est mis à disposition selon les termes de la licence Creative Commons Paternité-Pas d'Utilisation Commerciale-Pas de Modification 2.0 France.