Dans notre quĂȘte de conformitĂ© aux normes RGPD, nous nous sommes rĂ©cemment plongĂ©s dans l'univers des CAPTCHA pour dĂ©nicher la meilleure alternative Ă Google reCAPTCHA, du moins la meilleure pour nous. Aujourdâhui, je vous donne quelques bases sur les CAPTCHA, je vous prĂ©sente les diffĂ©rentes solutions que nous avons comparĂ©es avec leurs avantages et inconvĂ©nients et je vous dĂ©voile notre choix final.
En espĂ©rant que cela puisse vous faire gagner un peu de temps si vous aussi vous ĂȘtes Ă la recherche de la bonne alternative đ
Au programme aujourdâhui :
Une bonne alternative Ă Google recaptcha par MĂ©lanie
Lâagence de recrutement pour les leads devs RoR !
Temps de lecture : 4 minutes
Hello les petits Biscuits !
Bienvenue sur la 18Ăšme Ă©dition de Ruby Biscuit.
Vous ĂȘtes maintenant 432 abonnĂ©s đ„ł
Je profite de cette introduction pour vous faire découvrir la chouette newsletter
« Quoi de neuf les devs ? ».
Câest une newsletter hebdomadaire gratuite pour les dĂ©veloppeuses, dĂ©veloppeurs, sysadmin, ops, sre, DevRel, sĂ©cu.
Chaque vendredi, Quoi de neuf les devs câest : des articles, les news des rĂ©seaux, des vidĂ©os, des podcasts, des outils, les mises Ă jour de la semaine, lâinvitĂ©.e de la semaine, des offres dâemplois, les confĂ©rences et Ă©vĂ©nements Ă venir, la possibilitĂ© pour les dĂ©vs de faire leur demande de stage, dâalternance, de job, une touche dâhumour et une pointe de culture.
On y parle un peu de tout ce qui tourne autour du dĂ©v avec une forte appĂ©tence, il faut se lâavouer, pour le dĂ©v web.
Dâailleurs ça tombe bien, dans sa derniĂšre Ă©dition je prends la parole ! Pour la dĂ©couvrir et pourquoi pas vous abonner gratuitement câest ici đ
Avant de vous laisser lire lâarticle du mois, je tenais Ă vous rappeler que vous ĂȘtes tous les bienvenus pour donner votre avis en commentaire et partager vos expĂ©riences sur les sujets que nous abordons. Vous pouvez aussi mettre un petit like â€ïž et/ou partager la newsletter Ă un copain ou une copine ! đ
Bonne lecture.
Une bonne alternative Ă google reCAPTCHA
Les CAPTCHA ("Completely Automated Public Turing test to tell Computers and Humans Apart" ou "Test public de Turing entiÚrement automatisé pour distinguer les ordinateurs des humains") sont des tests utilisés pour distinguer les humains des robots.
Inspirés du célÚbre test de Turing, qui évalue si un ordinateur peut convaincre un humain de sa propre humanité, ces tests consistent généralement en des tùches simples pour les humains mais complexes pour les robots, comme la reconnaissance de texte déformé ou la résolution de puzzles visuels.
Leur objectif principal est de protéger les plateformes contre une variété d'abus automatisés, comme la création de comptes spam, la soumission répétée de formulaires ou le scraping de données, généralement orchestrés par des spambots.
L'utilisation des CAPTCHA est fortement recommandée sur les plateformes impliquant des interactions sensibles, du e-commerce, des services financiers, les réseaux sociaux et les formulaires d'inscription, soit presque tout hors site vitrine.
Il faut savoir que tous les CAPTCHA n'utilisent pas les mĂȘmes mĂ©thodes de test, voici quelques exemples :
Reconnaissance de texte dĂ©formĂ© : Les utilisateurs doivent saisir des mots ou des phrases Ă partir d'une image oĂč le texte est dĂ©formĂ©, rendant difficile la lecture automatique par des programmes informatiques.
Puzzles visuels : Les utilisateurs doivent sélectionner des images spécifiques ou résoudre des puzzles visuels pour prouver leur humanité.
Questions et réponses : Les utilisateurs doivent répondre à des questions ou à des énigmes simples pour valider leur identité humaine.
CAPTCHA audio : Les utilisateurs écoutent un enregistrement audio et saisissent ce qu'ils entendent pour valider leur identité.
CAPTCHA basé sur le temps : Les utilisateurs doivent effectuer une action dans un laps de temps donné pour prouver qu'ils sont humains.
Chaque type de CAPTCHA a ses avantages et ses inconvĂ©nients et certains peuvent ĂȘtre plus efficaces que d'autres pour certaines situations. Par exemple, les CAPTCHA basĂ©s sur la reconnaissance de texte dĂ©formĂ© peuvent ĂȘtre moins accessibles pour les utilisateurs ayant des difficultĂ©s de vision ou de lecture, tandis qu'un puzzle serait plus adaptĂ©. Le choix du type de CAPTCHA dĂ©pend des besoins spĂ©cifiques de chaque plateforme et de ces utilisateurs.
Comme je l'expliquais plus haut, chez Capsens nous avons récemment creusé le sujet et comparé différents services pour trouver une alternative à Google Recaptcha, voici un résumé de nos recherches :
Quelle solution avons-nous choisie ?
TLTR; Invisible Captcha.
Invisible Captcha utilise la technique du "honeypot". Elle consiste à ajouter un champ invisible supplémentaire dans un formulaire web, que seuls les robots sont susceptibles de remplir. Contrairement aux CAPTCHA traditionnels, le champ "honeypot" est invisible pour les utilisateurs humains car il est généralement masqué avec du CSS.
Lorsque le formulaire est soumis, le site vĂ©rifie si le champ "honeypot" est rempli. Normalement, les utilisateurs humains ne le rempliraient pas car ils ne le voient pas. Cependant, les bots qui analysent simplement le code source de la page et tentent de remplir tous les champs de formulaire, peuvent ĂȘtre piĂ©gĂ©s en remplissant Ă©galement ce champ.
Si le champ "honeypot" est rempli lors de la soumission du formulaire, ça bloque la demande et la traite comme un spam car cela indique probablement qu'il s'agit d'une soumission automatisée par un bot plutÎt que par un utilisateur humain légitime.
TrĂšs simple Ă mettre en place, voici les Ă©tapes :
Installer la gem.
Ajouter le champ caché dans votre formulaire
<%= form_with(model: @topic) do |f| %>
<%= f.invisible_captcha :subtitle %>
<!-- or -->
<%= invisible_captcha :subtitle, :topic %>
<% end %>
Ajouter le callback dans le controller
class TopicsController < ApplicationController
invisible_captcha only: [:create, :update], honeypot: :subtitle
end
Plusieurs options sont disponibles avec cette gem, pour nos plateformes nous avons utilisé les suivantes :
timestamp_threshold
qui offre une couche de protection supplémentaire qui permet de détecter les tentatives de spam basées sur la vitesse à laquelle un formulaire est soumis. Lorsqu'un formulaire avec un champ Invisible Captcha est rendu en html, un timestamp est enregistré. Lorsque le formulaire est soumis, la gem vérifie la différence de temps entre le moment de la soumission et le moment de la génération du formulaire. Si cette différence de temps dépasse le seuil défini partimestamp_threshold
, cela suggĂšre qu'un spambot pourrait ĂȘtre Ă l'Ćuvre.on_spam
qui nous permet de personnaliser le message d'erreur et la redirection en cas de détection d'attaque.
Il est important de prĂ©ciser que le honeypot est un mĂ©canisme bien plus simple que celui utilisĂ© par dâautres CAPTCHA comme celui de google ou de friendly captcha. Il est donc plus facile de le contourner pour un robot un peu plus intelligent que les autres. Nous avons fait le choix de cette librairie principalement pour des raisons RGPD et parce que câest gratuit mais tout ça en connaissance de cause. Bien sur, en complĂ©ment nous avons des blocages de comptes pour les formulaires de sessions (avec Devise lockable) et des durĂ©es de saisie longues pour les formulaires d'inscriptions (avec lâoption timestamp_threshold)
ainsi que dâautres mesures afin d'Ă©viter les spams et donc de limiter les DDOS (Distributed Denial-of-Service).
â MĂ©lanie
Lâagence de recrutement pour les leads devs RoR !
Comme vous le savez, derriĂšre Ruby Biscuit, il y a Capsens đ , nous sommes une agence web qui fait du Ruby on Rails depuis 10 ans.
Avec le temps on s'est rendu compte que beaucoup de devs choisissent leur entreprise un peu par hasard alors qu'ils pourraient davantage s'Ă©panouir et se valoriser dans des structures qui leur correspondent mieux. De plus on sait Ă quel point les process de recrutement peuvent ne pas ĂȘtre adaptĂ©s Ă notre mĂ©tier et nos profils.
Ce qui tombe super bien c'est que chez Capsens nous avons une excellente connaissance de l'écosystÚme RoR en France, avec un réseau d'entreprises considérable. La plupart étant des boites bien installées (+ de 5 ans), avec des équipes tech déjà présentes et qui recherchent avant tout des leads devs et devs séniors.
C'est pourquoi nous avons dĂ©cidĂ© de mettre Ă profit nos ressources pour vous aider Ă trouver le poste de vos rĂȘves !
Alors tu as plusieurs annĂ©es dâexpĂ©riences ? Tu souhaites trouver le prochain poste de lead dev de tes rĂȘves ?
ConcrĂštement voilĂ ce qui va se passer :
Réponds à cette newsletter en te présentant en deux lignes !
Je tâenvoie aussitĂŽt notre test technique pour Ă©valuer ta sĂ©nioritĂ©
Je te propose des crĂ©neaux pour un appel afin de faire ta connaissance et que tu me dises ce que tu cherches pour tâĂ©panouir dans une entreprise.
Je te propose 3 entreprises qui correspondent Ă ton profil et tes aspirations. Pour chacune de ces entreprises :
Je me charge de te donner un max dâinfos et rĂ©pondre Ă toutes tes questions par message (horaires, ambiance, taille et sĂ©nioritĂ© de lâĂ©quipe, responsabilitĂ©s, marge de manĆuvre pour la nĂ©gociation du salaire, localisation des bureaux, politique de tĂ©lĂ©travail, etc). Pas dâappels inutiles.
Avant de rencontrer le recruteur lui-mĂȘme, je te mets en relation avec un dĂ©veloppeur de leur Ă©quipe. Tu pourras alors te faire une idĂ©e de comment ça se passe de lâintĂ©rieur.
Enfin, le recruteur te recevra ! Il aura dĂ©jĂ eu toutes les informations que je lui aurai transmises sur toi ce qui vous permettra dâaller Ă lâessentiel !
Lance-toi, on attend ton e-mail ! Et si tu aimes dĂ©jĂ ton travail, ne nous contacte surtout pas ! Ou alors fais-le pour nous recommander ta boĂźte đ
A la semaine prochaine pour lâĂ©dition hors-sĂ©rie !
MĂ©lanie
De mon coté, j'ai longtemps utilisé cette méthode : https://www.deblan.io/post/429/contrer-des-robots-stupides-sans-captcha (+ https://www.deblan.io/post/458/retour-contrer-des-robots-stupides-sans-captcha) qui fait un trÚs gros ménage sur les attaques naïves.
Bonjour MĂ©lanie,
Merci pour cette trÚs bonne explication, trÚs claire. Nous avons mis en place un HoneyPot initialement mais lors d'un PenTest les auditeurs nous ont signalé que ça n'était pas suffisant car ils ont réussi à créer des comptes automatiquement. Du coup nous avons opté pour la solution ReCaptcha de Google qui - semble-t-il - deviendra payant en avril prochain. Pourquoi selon toi la solution ReCatcha Google pose problÚme d'un point de vue RGPD ?