Faire un Captcha en 2023

a marqué ce sujet comme résolu.

Bonjour,

Je suis en train de mettre à jour un site et je me demandais quel système de captcha installer. J’ai une dent contre Google aussi j’aimerais bien l’éviter (c’est le système actuellement utilisé).

Je me disais que j’allais en construire un moi-même, très simple, basé sur des questions/réponses : le cheval blanc d’henri 4, la somme de 2 et 8, ce genre de choses trèèèès difficiles. J’imagine une sélection aléatoire parmi 10 questions stockées sur le serveur, ajoutée à la fin des formulaires quand l’utilisateur n’est pas connecté.

Alors autant je vois bien comment le faire, autant je n’ai aucune idée de l’efficacité d’un tel système. Ca marche réellement ? Quelqu’un a déjà fait ce genre de choses ici ? Des conseils à donner ? Ou me déconseiller de faire ça et d’utiliser une API quelconque en ligne ?

Merci pour vos avis.

Salut,

Souvent ce genre de captcha peut fonctionner parce qu’il faudrait vraiment quelqu’un se penche dessus pour automatiser sa résolution. Mais si une personne a suffisamment de temps devant elle, ça ne serait pas très compliqué pour elle de lister l’ensemble des types de question existantes, les parser et calculer le résultat.

Tu peux tenter de complexifier le truc en rendant la question sous la forme d’une image, mais attention alors aux contraintes d’accessibilité.

J’ai déjà implémenté un captcha du genre qui était une recherche d’intrus : 4 mots étaient proposés et il fallait déterminer l’intrus parmi eux (en faisant attention à garder des choses évidentes). C’était assez banal et il n’aurait pas fallu énormément de temps pour lister toutes les combinaisons possibles mais ça faisait le boulot.

Merci pour ton avis. Je crois que je vais le tenter et aviser si je vois que le site se fait spammer rapidement. Au pire, il y a de toute façon un "sas" de validation avant que les utilisateurs puissent écrire des choses sur le site.

Je me demandais si j’étais obligé de passer par un appel serveur pour ce genre de choses, mais je ne m’y connais pas assez en sécurité Vue : est-ce que je peux stocker les questions/réponses dans un composant Vue quelconque ? Ou de fait ça permet à n’importe qui d’un peu caler de récupérer la liste ?

Si tu mets les réponses dans des ressources front (comme tes composants Vue), forcément ce sera accessible facilement. Donc oui, il faut une validation côté serveur, comme pour n’importe quelle validation de données.

Par contre assure-toi d’avoir vraiment besoin d’un captcha : ceux-ci posent parfois des problèmes d’accessibilité, en plus d’ajouter une friction dans l’expérience utilisateur. As-tu essayé d’installer des honeypots avant pour mitiger le spam ?

Sinon au lieu de Google je sais que Cloudflare propose une alternative nommée Turnstile qui a l’air de demander moins d’effort de la part des utilisateurs.

Ok merci. Je passerai donc par le serveur, et me rabattrai sur Turnstile si ça tourne au cauchemar ^^

Je lisais quelque part que la technique des honeypots - si on parle bien du fait de cacher un champ à l’utilisateur qui sera rempli automatiquement par un bot - était en fait facilement contournée de nos jours.

Si tu mets les réponses dans des ressources front (comme tes composants Vue), forcément ce sera accessible facilement. Donc oui, il faut une validation côté serveur, comme pour n’importe quelle validation de données.

Par contre assure-toi d’avoir vraiment besoin d’un captcha : ceux-ci posent parfois des problèmes d’accessibilité, en plus d’ajouter une friction dans l’expérience utilisateur. As-tu essayé d’installer des honeypots avant pour mitiger le spam ?

Sinon au lieu de Google je sais que Cloudflare propose une alternative nommée Turnstile qui a l’air de demander moins d’effort de la part des utilisateurs.

viki53

J’ai testé Turnsstile sur un projet personnel et ça marche plutôt bien à condition de ne pas avoir des « power users » qui sont capables de saisir plus vite que leur ombre avec l’habitude. Même dans ce cas, cela dit, retenter un envoi en JS sans que l’utilisateur ne le voie (pour ne pas plomber son expérience) ça se fait très bien.

J’utilise la solution de hCaptcha. C’est littéralement un Captcha à la Google (ReCAPTCHA), mais ce n’est pas Google. La solution fonctionne très bien, et est même utilisée par Cloudflare en complément lors de l’accès à une page derrière Cloudflare CDN.

Je l’utilise sur un de mes sites à + d’un million de visiteurs mensuel sans aucun souci de spam.

+0 -0

Bonsoir,

Le mieux, ce serait de se passer totalement de CAPTCHA. Il existe d’autres moyens pas si inefficaces que ça de détecter passivement, ou du moins de soupçonner avec une bonne probabilité, qu’on est en présence d’un robot ou troll ou pas.

Par exemple:

  • Poser un petit cookie et enregistrer l’IP pour empêcher le flood (c’est basique, mais ça élimine déjà les plus idiots, et le nombre d’idiots n’est pas si négligeable que ça)
  • Éliminer les entrées vraisemblablement débiles, du genre personne de saint d’esprit et d’honnête ne choisit un pseudo ou un e-mail avec un motif qui se répète plus de trois fois de suite, genre "aaaaaa@gmail.com" ou "flagadadadada" (la seule raison de vouloir faire ça, est de créer un compte troll)
  • Pour un formulaire de contact, un bon vieux dictionnaire de mots interdits élimine aussi pas mal de choses, de même que calculer un ratio texte plausible vs. URL vs. code HTML là où il n’est pas censé y en avoir
  • ON peut essayer d’aller plus loin en détectant les trucs imprononçables ou visiblement aléatoires, aussi bien dans les noms/e-mail que le texte, mais c’est plus compliqué et suceptible aux faux positifs.
  • Vérifier l’adresse IP du visiteur de même que le domaine de l’e-mail indiqué avec les DNS sur les réseaux anti-spam (se renseigner sur PBL/SBL/XBL entres autres)
  • Pour aller plus loin avec les e-mails, il existe des services (hélas souvent payants et parfois assez cher évidemment) qui permettent de vérifier la réputation d’un domaine e-mail ou même d’une adresse e-mail particulière.
  • Plus discutable mais néanmoins efficace: bloquer les VPN gratuits / douteux, ou les réseaux du genre TOR (compliqué vu que les plages changent régulièrement). Hormis pour quelques malheureux qui n’ont pas le choix, le plus souvent, la seule raison de vouloir se cacher derrière ça est encore une fois de troller.

Avec tout ça pour l’instant mon site tient très bien sans avoir de CAPTCHA, il y a 22000 utilisateurs et de réguliers robots et trolls. Relativement peu de personnes sont réellement embêté pour s’inscrire, il n’y a pas de problème d’accessibilité, pas de questions stupides ou pénible à répondre, et on ne nourrit pas les IA.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte