créer une "empreinte" unique d'un visiteur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : créer une "empreinte" unique d'un visiteur

Re: créer une "empreinte" unique d'un visiteur

par moogli » 16 oct. 2011, 17:10

@devphp : perso je trouve que ce type de chose n'a aucun intéret un bot pouvant sans trop de soucis totalement ignorer le JS et ajouter la validation du formulaire ton script serait inutile dans ce cas (essai une simulation de formulaire avec curl :)). Après je suis ok c'est pas pour le premier boulet venu non plus :)

@Gofromiel : merci pour l'info je vais regarder de plus prêt. Le banissement sur ip pourquoi pas (et j'ai d'ailleurs prévu un système avec une base sqlite) mon problème étant d'éviter de bannir une ip derrière laquelle il y a 40000 péons.
bon après je ne pense pas que ce formulaire aura beaucoup de visite mais une bonne solution pour une utilisation future m'intéresse.

je regarde dès que j'ai un peu de temps

@dunbar : effectivement, j'avais pas vu ce thread, merci, il semble que l'on ai toujours les mêmes problèmes :mrgreen:

merci

@+

Re: créer une "empreinte" unique d'un visiteur

par Gofromiel » 14 oct. 2011, 15:12

À l'époque j'utilisais une fonction qui donnait un score aux messages, et pour tout score négatif j'ignorais le message : L'anti-spam fastoche. Alors ça marche très bien avec les robots "débiles" mais c'est beaucoup moins efficace avec les robots modernes qui génèrent du contenu qui semble normal. Maintenant j'utilise en plus le service Stop Forum Spam qui propose une API simple et efficace : http://www.stopforumspam.com/usage. Le blocage sur IP y'a que ça de bon pour être à peu près tranquille.

Re: créer une "empreinte" unique d'un visiteur

par DevPHP » 13 oct. 2011, 17:53

Oui, c'est exactement ça, sachant que le la valeur et le nom de l'input change aléatoirement.
Maintenant, comme je l'ai dis, c'est absolument pas infaillible :(
Dans mon cas, il s'agit d'un formulaire de commentaire sur un galerie photo, plus d'une centaine de commentaires avec des caractères atroce ou de l'anglais bourré de fautes.
Depuis mon système, plus rien (ou presque)

Sinon, reste le blocage de l'IP (un reboot du modem suffit si IP dynamique pour revenir mais bon)


PS : Je les bloquerai tous xD

Re: créer une "empreinte" unique d'un visiteur

par xTG » 13 oct. 2011, 17:38

Je serais curieux d'avoir plus d'informations sur ta méthode. Car je ne vois pas en quoi c'est aussi sécurisant qu'un captcha. :)
Pour moi tel que tu nous le présentes c'est un captcha dont le code est inscrit en dur dans le code HTML généré. 8-|

Re: créer une "empreinte" unique d'un visiteur

par DevPHP » 13 oct. 2011, 17:34

Perso, pour l'histoire du Captcha j'ai une solution pour s'en passé.
Ca contrains juste l'utilisation du javascript

Code : Tout sélectionner

<!-- Sachant que getElementById('RVghmW5w2r'').value='3Zo39urzjh'; est généré aléatoirement --> <input type="hidden" name="bBN0jP66gf" id="RVghmW5w2r" value="RVghmW5w2r" /> <input type="submit" onclick="document.getElementById('RVghmW5w2r').value='3Zo39urzjh'; this.form.submit();" value="Soumettre le commentaire" />
Ensuite tu vérifie, bon, il est clair que ça n'abolis pas le spam, mais c'est déjà bien.
Ensuite, rien ne t’empêche de stocker les IPs (serializer ou en BDD) et de vérifié que c'est un spammeur en début de page, ensuite tu les redirige vers http://kristof.123.fr/sorry.php

PS : J'ai pas lu tout les posts, désolé si je foire dans la réponse :D
A oui, aussi, les créateurs de spam-bot, aime joué les fouineurs pense a changé de méthode de temps en temps :mrgreen:

Re: créer une "empreinte" unique d'un visiteur

par dunbar » 12 oct. 2011, 09:26

Un truc vraiment basique que j'ai déjà exposé ici et qui marche toujours très bien, j'ai mis ça en place sur un livre d'or il y a 3 ou 4 ans, je sais plus trop, ça a stoppé net les spams.

Ton formulaire comporte probablement un textarea avec un id="message". Crées-en un second avec id="spam". Ensuite deux modifications :
-1- dans la feuille de style, masque le textarea qu a pour id « message » (et pas « spam »)
-2- Lors du traitement, vérifie le contenu de « message » : comme un internaute humain ne peut pas le voir, c'est forcément un robot qui l'a rempli puisqu'il ne tient pas compte des feuilles de style, donc tu lui fait une redirection vers le néant ou n'importe quel trou noir à disposition. Quand à l'internaute normal, il ne voit pas l'identifiant de la zone et il s'en cogne, donc il remplit normalement son texte.

Comme certains robots « savent » plus ou moins détecter certains mots, il y a des chances pour qu'ils ne mettent rien dans le textarea « spam », donc si cette zone est en plus vide, au traitement tu auras la confirmation si c'était nécessaire que c'est bien un robot qui passe.

Avec ça, pas de captcha, pas de calculs à fournir, rien pour enquiquiner l'utilisateur normal, pas de casse-tête ;)

Une discution qui avait commencer en 2006 :)

Re: créer une "empreinte" unique d'un visiteur

par sirakawa » 11 oct. 2011, 13:54

Moi je trouve les captcha chiants au possible, d'autant que s'ils dépassent la simple opération,ils présentent une suite de lettres plus ou moins aisément déchiffrables: il m'est arrivé plus d'un fois, sur des sites où la génération du captcha est précédée d'une temporisation de devoir poireauter un temps non négligeable jusqu'à tomber sur un qui se laissât lire.
C'est vrai que les deux zones de texte, ça ne requiert aucune installation, juste une modification minime du code des pages... Tout pour plaire.
Par ailleurs le bruit a couru que ce type de captcha seraient utilisés commercialement sur des portions de textes réistant aux OCR, mais je suppose qu'il ne s'agit là que d'un bouteillon...

Re: créer une "empreinte" unique d'un visiteur

par xTG » 10 oct. 2011, 21:05

il a même pas besoin de savoir compter pour répondre combien font 3 + 4...
Surtout que même à un humain ça arrive de pas savoir répondre...
Ou plutôt de donner la réponse qui correspondait à la question posée il y a 5 minutes (gros formulaire) et qui n'est plus d'actualité... (bon faut vraiment mal coder pour tomber là dessus, mais ça m'est déjà arrivé...)

Re: créer une "empreinte" unique d'un visiteur

par Cyrano » 10 oct. 2011, 19:33

Mouais, faudrait qu'il veuille vraiment me pourrir la vie, sans doute un développeur très très tatillon qui trouverait un de mes plus vieux code quand j'apprenais à programmer et qu'il serait chargé de mettre à jour : là effectivement on pourrait comprendre qu'il souhaite me pendre avec mes propres intestins à la première antenne de HotSpot WiFi à portée de main.... (voir ma signature ci-dessous) Et ça voudrait dire qu'il faudrait qu'il indique vraiment à son bot comment faire de façon générique pour reconnaitre une classe CSS, aller lire la bonne feuille de style, trouver la classe, détecter les instruction qui masquent l'élément et...comprendre pourquoi, surtout si mon champ a un nom normal. Et à la limite, si je met un nom normal à l'autre aussi au lieu de « spam », il aura une raison de moins de comprendre le pourquoi (le bot s'entend) d'autant qu'il n'est pas rare d'avoir pour des raisons fonctionnelles des champs qui sont dynamiquement masqués et qu'on peut devoir faire apparaître avec un gestionnaire d'évènement x ou y.

Pour ma part, je trouve que c'est quand même chercher la petite bête pour pas grand chose : avec cette technique, je trouve que je me simplifie considérablement la vie : pas de captcha, pas de cookie, pas de clé tordue quoique c'est pas exclu non plus voire même recommandable quand même, enfin bon, pas de casse tête particulier pour moi, et la simplicité même pour l'utilisateur normal du formulaire, il a même pas besoin de savoir compter pour répondre combien font 3 + 4... :-k

Re: créer une "empreinte" unique d'un visiteur

par xTG » 10 oct. 2011, 18:40

En fait je pense que ce que nicolas voulait dire c'est que le jour où un créateur de bot a envie de pourrir ton site, il va l'étudier et découvrir ceci.
Et donc il créera une règle pour son bot afin qu'il fonctionne sur ton site.

Re: créer une "empreinte" unique d'un visiteur

par Cyrano » 10 oct. 2011, 17:32

Il faut juste que quelqu'un ait l'envie de passer à travers ton filtre.
Ben justement, il me semble que c'est ça la magie du truc: de prime abord, le formulaire est normal et à la rigueur un robot verra un champ avec un mot clé qu'on évite quand on veut pourrir un site, et on remplit soigneusement un faux champ que l'utilisateur normal ne voit pas.

Au moment de traiter le formulaire, tu vas repérer tout de suite une embrouille : rien ne t'empêche de traiter l'adresse IP du boulet pour bloquer ses tentatives ultérieures pendant une période donnée, ou tout autre traitement que tu aurais de toutes façons réservé au boulet avec des techniques plus sophistiquées de détection ou d'anti-intrusion. Mieux, en fait, comme il a moins de raisons de se méfier, il va d'autant plus facilement se faire prendre. Les Robots ne sont pas encore capable en général de faire de l'OCR pour lire les captchas, donc il y a des chances s'il y en a un qu'ils passent directement à une autre victime sans se faire repérer, tandis que là, ils ont beaucoup plus de chances de tomber dans le panneau et de se faire détecter.

Re: créer une "empreinte" unique d'un visiteur

par nicolas » 10 oct. 2011, 15:51

Ouhouh ! Pas bête du tout le coup des textareas ! Je me note ça, c'est franchement pas bête...
J'adore les compliments, ça fait un bien fou... rhaaaaaa vas-y, redis-le encore ? :langue:

En fait j'avais eu cette idée là précisément parce que j'en avais marre de me faire pourrir un petit livre d'or par ce qui était de toute évidence des robots. Je me suis donc basé sur ce point particulier : un robot peut faire certaines choses s'il est bien programmé, mais il est limité par le niveau de génie de son créateur et par la complexité qu'il peut y avoir à programmer certains éléments. Donc, en contournant via une feuille de style, on lui met des bâtons dans les roues, et même aujourd'hui, ça reste valable. Et je suis tenté de croire que ça devrait durer encore pas mal de temps avant que les robots soient assez futés pour trouver une parade parce qu'il faudrait qu'il interprètent à la manière d'un humain qui voit avec ses yeux et non qui lit du code client.
Il faut juste que quelqu'un ait l'envie de passer à travers ton filtre. Si c'est juste pour protéger le livre d'or de Mme Michu il y a peu de chance que le jeu en vaille la chandelle mais sur un plus gros site, récupérer la feuille de style, en plus du contenu html et chercher les éléments cachés n'est pas si complexe que cela.

Re: créer une "empreinte" unique d'un visiteur

par Cyrano » 10 oct. 2011, 15:26

Ouhouh ! Pas bête du tout le coup des textareas ! Je me note ça, c'est franchement pas bête...
J'adore les compliments, ça fait un bien fou... rhaaaaaa vas-y, redis-le encore ? :langue:

En fait j'avais eu cette idée là précisément parce que j'en avais marre de me faire pourrir un petit livre d'or par ce qui était de toute évidence des robots. Je me suis donc basé sur ce point particulier : un robot peut faire certaines choses s'il est bien programmé, mais il est limité par le niveau de génie de son créateur et par la complexité qu'il peut y avoir à programmer certains éléments. Donc, en contournant via une feuille de style, on lui met des bâtons dans les roues, et même aujourd'hui, ça reste valable. Et je suis tenté de croire que ça devrait durer encore pas mal de temps avant que les robots soient assez futés pour trouver une parade parce qu'il faudrait qu'il interprètent à la manière d'un humain qui voit avec ses yeux et non qui lit du code client.

Re: créer une "empreinte" unique d'un visiteur

par xTG » 10 oct. 2011, 14:53

Ouhouh ! Pas bête du tout le coup des textareas ! Je me note ça, c'est franchement pas bête...

Re: créer une "empreinte" unique d'un visiteur

par moogli » 10 oct. 2011, 13:20

Wé ça m'intéresse le coup du champ caché merci.

Popy le "captcha" c'est deux rand(1,50); et un array _rand sur un tableau qui contient l'operation.
Après c'est vrai que ce type limite par l'intellect mais bon y a la calculatrice au pire :)

J'avoue que pour le coup l'ergonie utilisateur je m'en fou un peu je suis meme pas sur que le formulaire sera utilisé un jour ;)
J'veux juste pas etre emmerdé ;)

Merci pour les infos

@+