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.



Youtube MP3 Podcaster : télécharger la partie audio des podcasts

Internet n'est pas encore totalement démocratisé dans nos voitures. Il en prend le chemin, toutefois, mais ce genre d'option est encore réservée à une certaine élite. Du coup, comment faire pour écouter ses [...]

DIABLO 3 : le Diable s'habille dans un DRM et tout le monde l'aide

À chaque nouvelle sortie d'un jeu qui cartonne, c'est toujours la même rengaine. Les joueurs les plus gueulards sortent de leurs gonds pour dénoncer la présence de ses DRM. Le dernier en date, c'est Diablo 3. Depuis [...]

Pédophilie : Orange appliquera la LOPPSI par un filtrage par DNS

Avec la LOPPSI, en France, l'utilisation des DNS tiers contournant ceux que son FAI propose pourrait bien devenir illégal. En effet, comme le rapporte PCInpact, Orange a déjà pris des mesures, et surtout les [...]

Ajouter des colonnes d'informations dans Nautilus (photos et musiques)

Vous avez beaucoup de photos ou de musiques dans votre ordinateur, et vous utilisez Ubuntu, ou une autre distribution utilisant l'excellent gestionnaire de fichiers Nautilus ? Vous aimerez alors cette extension de [...]

Compléter DuckDuckGo avec l'extension DDGComplete pour Firefox

J'aime beaucoup DuckDuckGo que j'utilise désormais au quotidien. Il évolue dans le bon sens pour les développeurs de sites et de services web. Ce moteur de recherche propose aussi de nombreux goodies, comme vous [...]