Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire, et celles qui ne le comprennent pas.

autopromo sony vaio 2010

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.

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

Les commentaires sont en dofollow. Merci de ne pas être vulgaire et de faire de votre mieux pour vous exprimer clairement. Aucune modération ni censure n'est appliquée. Par conséquent, si votre commentaire n'apparait pas une fois envoyé, contactez-moi rapidement ; il a très certainement été filtré par le mécanisme anti-spam. En cas d'abus, je n'hésiterai pas à le retirer. 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="">

2010010203040506070809101112
2009010203040506070809101112
2008010203040506070809101112
2007010203040506070809101112
Flux RSS Sur Twitter Wallpapers Tags

Les derniers titres de mon journal

Vous en parlez sur ce blog

    Non juste un grand merci pour ce clair et rapide tuto.... — Jean-Bruno

    sélection sympa d’artistes féminins qui sont des vraies...... — dessin

    Non pourquoi il ferait ça ? L’intérêt de cette faille est...... — Skalp

    Comme dit plus haut, c’est une faille nécessitant d’être...... — Skalp

    Il faut déjà être authentifié sur le réseau avant d’exploiter...... — felixaime

    Perso, je n’ai jamais été tenté par cette console. Cependant,...... — Laurent

    Je cherche une invitation à spotify pour enlever la limitation....... — ScrubsAB

    bonjour, j’aimerai avoir une invitation, Pour me faire une iddé de...... — wil

    Je suis a la recherche d’une invitation afin de ne plus être...... — ScrubsAB

    Désolé, la Corsair voyager 8 Go ci-dessus ne boote pas. Il en est de...... — Alfred83

Informations

Vous avez remarqué des erreurs dans les propos tenus ? Des fautes d'orthographe ? Vous avez des éléments intéressants à rajouter ? Vous voulez vous exprimer à votre tour sur ce blog, ou simplement me proposer une information à relayer ?


Contactez-moi par mail ou via @neosting.


licence : Creative Commons BY-NC-ND 2.0 France.

Thème réalisé par NeoSting.

Propulsé par Wordpress (Codex - Plugins)

Recommandé avec : Chrome, Firefox et Safari.


Merci @Kreiion pour ses dessins (son blog)

Peut-être bien à lire...

Citation au hasard

Internet sera à l’économie du 21è siècle ce que l’essence fut au 20è siècle. La puissance des ordinateurs c’est l’essence d’internet.— Craig barret


john's graphisme
akibag
ColourGame.com