8721 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

Il existe des programmes qui essayent de comprendre les langues humaines ou du moins certaines phrases qui touchent à leur fonction donc si tu en fais un assez évolué pour comprendre les CAPTCHAs tu peux passer toutes les sécurités. Ça touche un peu à la robotique de science fiction mais c'est tout à fait faisable. Smiley ravi
Necromantik a écrit :
Il y a aussi l'option de ne pas mettre de captcha du tout en de filtrer ensuite ce qui reçu côté serveur, par exemple avec un filtre Bayésien {fr}.

À mon avis la solution d'avenir car les contres côté serveur peuvent évoluer en même temps que les bots.
Les deux peuvent être complémentaires ...
Merci Necromantik pour ce lien

a écrit :
Le théorème de Bayes appliqué aux pourriels indique que la probabilité qu'un courrier soit un pourriel, compte tenu qu'il contienne certains mots, est égale à la probabilité de trouver ces mots dans un pourriel multipliée par la probabilité qu'un courrier soit un pourriel, divisé par la probabilité de trouver ces mots dans un courrier


... définition dont la compréhension est à réserver pour les longues insomnies, je n'essaierai donc pas dans l'immédiat.

Oui bien sûr il s'agit d'une toute autre stratégie consistant à tout laisser passer et à ne mettre en place des filtres qu'après. L'un n'empêchant pas l'autre, si on arrive à éliminer les spams avant réception c'est pas plus mal non plus.
Arsene a écrit :
Le théorème de Bayes appliqué aux pourriels indique que la probabilité qu'un courrier soit un pourriel, compte tenu qu'il contienne certains mots, est égale à la probabilité de trouver ces mots dans un pourriel multipliée par la probabilité qu'un courrier soit un pourriel, divisé par la probabilité de trouver ces mots dans un courrier


... définition dont la compréhension est à réserver pour les longues insomnies, je n'essaierai donc pas dans l'immédiat.C'est une simple équation rédigée en français ça va quand même ... Vous regardez jamais Numbers ou quoi ? Smiley lol
Suite de mes pérégrinations anti-spam.

Je pars dans l'idée (peut-être fausse ?) que le robot lit la page mais ne la voit pas, et donc qu'il reçoit le flux dans l'ordre où celui-ci se présente.

Si on place très loin du formulaire (entête ou bas de page) un mot-clé aléatoire généré pas Php et qu'un champ hidden requiert ce mot-clé pour faire aboutir la séquence, l'inconvénient est que la "distance" entre eux, si elle peut être optiquement annulée en CSS par une position absolute par exemple, est rédhibitoire pour les utilisateurs non-screen (ou non-css ou loupe d'écran, etc).

Une ancre faisant l'aller-retour entre mot-clé et formulaire (2 clicks ou 2 coups de "tab" ) est une solution possible. Serait-elle compréhensible par le bot ?
L'ancre sert justement à ça Smiley smile

L'idée c'est :
1- on arrive sur l'ancre
2- on passe au mot-clé
3- on passe au text imput

Voir si cette ancre peut-être placée dans le fieldset directement, peut-être même dans le label ?
Modifié par Arsene (14 Aug 2007 - 11:42)
Excuse-moi j'avais pas bien lu.

Cependant je comprends pas bien ce qu'il faut que l'utilisateur fasse.
Pour un utilisateur pouvant afficher intégralement la mise en page générée par Css pas de problème particulier : il "voit" le mot-clé accolé au text input.

Pour un utilisateur ne le pouvant pas, l'ancre l'envoie au mot-clé puis le ramène au text input.
Ça pourrait même prendre cette forme (en syntaxe ultra-réduite...)

en premier dans le flux :

<div id=mot et  pos=absolute>


ensuite quelquepart dans le texte :

<div id=description> phrase de quelques mots-clés présentant le contenu ou l'émetteur


ensuite un script php choisit aléatoirement un des mots-clés de la chaine ci-dessus et l'écrit dans la <div> :

<a href=#input>$code


CSS place la <div> juste au-dessus du formulaire :

<label>Entrez le mot <a href=#mot>
<input hidden>


De cette façon chaque page de formulaire possède son propre script entièrement automatique et le mot-clé choisi aléatoirement n'est jamais structurellement placé à côté du formulaire.

Reste bien sûr la possibilité pour le "bot-man" de scripter le suivi des ancres mais bon, ça reste très improbable.
Je viens d'avoir une idée !

Un bot cherche les formulaires donc on fait remplir le formulaire puis on stock le tout dans un cookie ensuite on redirige vers une page où il n'y a pas de formulaire mais juste un lien vers une autre page comme ça le bot croit qu'il a réussi et il part alors que l'utilisateur clique sur le lien et continue.

Est-ce que vous m'avez compris ?
Modifié par CNeo (23 Aug 2007 - 13:43)
Administrateur
Une page intermédiaire? Y a de l'idée Smiley idee Si ce n'est pas un pop-up mais une page quasi-vide avec juste un message et un lien, tous les humains le remarqueront.
Ca évitera déjà 9x % des spams de formulaire, reste bien évidemment ceux où le concepteur du bot corrige et complète son bot au fur et à mesure et ceux où une armée de {travailleurs à bas salaires} vérifie chaque post pas validé ... Mais c'est le lot de toute solution de toute façon.
Merci j'ai mis longtemps à trouver ... Tu as bien compris le principe.

Édit : Pour que le bot passe il faut qu'il comprenne ce qui est écrit donc je changerais la phrase à chaque fois qu'un bot passera comme ça il faudra qu'il recorrige ...
Modifié par CNeo (23 Aug 2007 - 14:09)
L'idée est bonne... Inconvénient : cas des cookies désactivés... Peut-être créer une session temporaire ?
Arsene a écrit :
L'idée est bonne... Inconvénient : cas des cookies désactivés... Peut-être créer une session temporaire ?
Justement je me demandais : quand les cookies sont désactivées est-ce que les sessions le sont aussi ? parce que en vérité une session c'est juste un nombre dans un cookie ...
CNeo a écrit :
Justement je me demandais : quand les cookies sont désactivées est-ce que les sessions le sont aussi ?
Salut Smiley cligne ,

normalement la session est rajoutée automatiquement dans l'URL (...&PHPSESSID=gsd6g454fds65g)
Heyoan a écrit :
Salut Smiley cligne ,

normalement la session est rajoutée automatiquement dans l'URL (...&PHPSESSID=gsd6g454fds65g)
Non ça c'est une des deux méthodes. Cependant ça peut régler mon problème je n'y avais pas pensé.
Je voulais dire que quand l'écriture des cookies est désactivée l'id session est placé automatiquement dans l'URL Smiley cligne .
Modifié par Heyoan (27 Aug 2007 - 12:07)
Juste pour compléter :

il faut pour cela que session.use_trans_sid soit à 1 et ne pas avoir session.use_only_cookies = 1 (le PHPSESSID serait toujours transmis dans l'URL mais pas interprété dans le script) Smiley smile .
Comme ça, théoriquement ça marche dans tous les cas de figures, non ? Le seul hic serait que le bot comprenne la phrase à cliquer mais on part dans l'idée qu'il ne va pas suivre le lien... sauf s'il est assisté, d'où l'intérêt d'une phrase aléatoire pour empêcher au maximum l'automatisation.

Du coup :
- on ne dépend pas de l'activation ou pas de JS, des cookies, des CSS, etc.
- on ne dépend pas de la compréhension ou pas d'une question à laquelle il faut répondre, question plus ou moins compliquée
- on ne dépend pas de la possibilité d'un passage OCR sur un mot-image, lequel pose surtout un gros problème aux UA-visiteurs "non-images"

En revanche on rajoute un click supplémentaire mais c'est pas dramatique au regard du gain.

En fait il faut 3 pages :

- Page 1 : le formulaire (accessible à tous)
- Page 2 : crée la session (reroute vers autre chose si la valeur pour créer la session est absente) et propose de cliquer sur un lien genre : voulez-vous valider votre message ?
- Page 3 : page "transparente" (header(location:.....) qui écrit le message là où il faut, détruit la session et clôt le cycle anti-spam.
Pages :