Bonjour,
Parmi les recettes de grand-mère pour lutter contre le spam de formulaire, il y a aussi la technique du champ caché en CSS :
<input type="text" id="truc" name="truc" />
input#truc {
position: absolute;
left: -500px;
top: -500px;
}
Un utilisateur qui navigue à l'écran ne verra pas cet input et ne le remplira donc pas. Tandis qu'un robot, en général, remplit bêtement tous les champs. Donc côté serveur, si le champ a été rempli : on ne valide pas. Et pour les utilisateurs qui naviguent en mode texte, oral, brail, etc, on pourra faire précéder l'input d'un label du style :
<label for="truc">Ne remplissez pas ce champ</label>
(label également masqué en CSS).
Mais bon, c'est loin d'être super fiable, pas plus que les autres techniques excepté le captcha. Je crois que désormais, bien souvent, les spammeurs viennent d'abord physiquement sur le site web à spammer afin de déblayer le terrain manuellement et voir comment remplir le formulaire. Ensuite, leur robot prend le relais. En effet, j'ai vraiment vu des trucs incroyables. J'avais mis en place un captcha texte avec des petites énigmes du genre : "combien font 4 x 5", ou "dernière lettre du mot machin", etc... Eh bien j'ai eu la surprise, un jour, de voir qu'un robot arrivait à y répondre. J'ai donc changé la série d'énigmes, j'ai eu la paix une semaine ou deux, et puis ça a repris. Je pense que le coup des énigmes ne peut fonctionner que si ces énigmes sont générées de façon aléatoire, par exemple :
Citation
Quelle est la n° lettre du mot M ?
où n est un chiffre tiré au hasard, et M un mot tiré au hasard dans une longue liste. Et encore, même ça, un spammeur humain peut créer un petit programme qui saura y répondre.
Le coup de la session c'est pareil : rien n'empêche un robot d'accepter les cookies. Vérifier qu'il s'est passé au moins cinq secondes entre le remplissage du premier champ et l'envoi du formulaire ? Là encore, un humain peut facilement déblayer le terrain et programmer son robot pour faire ce qu'on attend de lui.
Au final, malheureusement, je crois que jusqu'à aujourd'hui, la technique la plus fiable reste le captcha visuel (un code à recopier). D'un point de vue accessibilité c'est nul, mais c'est la méthode la plus efficace (et ce n'est même pas efficace à 100% car il existe des logiciels capables de détecter lettres et chiffres sur une image).
PS : et pour Akismet, personnellement, je n'aime pas les filtres automatiques, qui se basent bien souvent sur la présence de tel ou tel mot clé. Il y a inévitablement des messages qui seront retenus par le filtre alors qu'ils étaient cleans.