Scarnox · Blog

Le score reCAPTCHA v3 expliqué : comment les sites jugent les visiteurs sans défi

reCAPTCHA v3 n'affiche aucun défi. Il s'exécute en arrière-plan sur la page, observe le visiteur et renvoie un score de 0,0 à 1,0, où une valeur plus élevée signifie que le visiteur a plus de chances d'être un humain. Le backend du site décide de ce qu'il fait avec ce score. Un formulaire d'inscription peut laisser passer un visiteur à 0,7 et le bloquer à 0,3. La prise en charge de reCAPTCHA v3 par Scarnox arrive bientôt. Ce guide explique le fonctionnement du score et les moyens légitimes d'éviter qu'un travail automatisé soit évalué comme un bot.

Comment le score est produit

La page charge le script reCAPTCHA et l'appelle pour une action, comme login ou signup. Le script collecte des signaux dans le navigateur et les envoie à Google, qui renvoie un jeton. Le serveur du site envoie ensuite ce jeton au point de vérification de Google, avec sa clé secrète, et reçoit en retour un score et un nom d'action.

Le score est une estimation de risque construite à partir de plusieurs types de signaux :

La pondération exacte n'est pas publiée, et elle évolue. Ce qui est public, c'est le contrat : le site choisit un seuil, et le score détermine le résultat.

Pourquoi l'automatisation obtient un score bas

Le trafic automatisé obtient souvent un score bas pour des raisons prévisibles. Un navigateur headless aux réglages par défaut présente des signaux inhabituels. Une nouvelle session n'a aucun historique. Un schéma de requêtes rapide et régulier ne ressemble pas à la navigation d'une personne. Les adresses de centres de données sont jugées plus suspectes que les connexions domestiques. Chacun de ces éléments est un signal, et plusieurs ensemble peuvent faire passer le score sous le seuil.

Comme il n'y a aucun défi visible, un score bas se traduit souvent par un échec silencieux. La page se charge, le formulaire est rejeté, et rien ne vous indique pourquoi. Mettez en place une journalisation qui vous permette de voir l'erreur côté serveur.

Des moyens légitimes de garder un bon score

Ces approches sont destinées à votre propre travail et à la collecte de données légitime :

  1. Utiliser un vrai profil de navigateur. Un navigateur normal avec des réglages et des extensions ordinaires est moins susceptible d'être évalué comme un bot qu'une version headless dépouillée. Le guide sur l'empreinte du navigateur explique comment l'environnement du navigateur est lu.
  2. Garder les sessions actives. Conservez les cookies entre les requêtes, et ne repartez pas d'un état vide à chaque page.
  3. Régler le rythme des requêtes. Les visiteurs humains ne chargent pas cent pages par seconde. Ajoutez des délais et randomisez-les dans une plage raisonnable.
  4. Éviter les indices évidents. Les user agents par défaut, les paramètres de langue absents et les tailles d'écran incohérentes sont des signaux faciles à corriger.
  5. Tester par rapport à votre propre seuil. Si vous exploitez le site, lisez le score en préproduction et vérifiez quels signaux le font baisser. Les clés de test de Google sont utiles pour tester l'intégration sans scoring réel.

Ces étapes réduisent les faux positifs sur un travail réel. Elles ne permettent pas de fabriquer un score humain à des fins abusives, et aucune de ces approches ne change le fait que le propriétaire du site décide du seuil.

Ce que le score ne fait pas

Le score ne prouve pas qu'un visiteur est humain, et il ne vous dit pas pourquoi un visiteur a un score bas. Un score bas peut venir d'un navigateur inhabituel mais légitime, d'un réseau partagé ou d'un VPN. Considérez le score comme une donnée parmi d'autres. Si votre travail légitime continue d'obtenir un score bas, la réponse honnête est souvent de demander au propriétaire du site une liste d'autorisation ou une API.

Où en est Scarnox

Scarnox ne résout pas reCAPTCHA v3 en direct aujourd'hui. Le seul type de tâche disponible est PopularCaptcha, sans proxy. reCAPTCHA v3 arrive bientôt. Un solveur fondé sur un score doit renvoyer un jeton que le site accepte, ce qui est un problème différent de la résolution d'un puzzle visible ; les détails d'intégration seront donc documentés dans la référence API lors de la mise en service.

Créez un compte pour commencer avec un crédit d'essai gratuit, sans carte bancaire, et vous serez prêt quand ce type sera disponible.

Lire le score dans vos propres journaux

Comme il n'y a pas de défi visible, la seule façon de comprendre un échec lié au score est de le journaliser. Sur votre propre site, enregistrez le score, le nom de l'action et l'indicateur de succès que votre backend reçoit de l'appel de vérification, avec l'horodatage de la requête et le chemin d'où elle provient. Sur une semaine de trafic, le schéma révèle généralement quelles pages ou quels parcours obtiennent un score bas. Un parcours toujours bas peut être un vrai problème pour les utilisateurs légitimes, par exemple une étape d'inscription franchie trop vite après le chargement de la page, plutôt qu'un problème de bot.

Comparez aussi les scores d'une même action selon les navigateurs et les réseaux. Si un visiteur normal sur une connexion domestique obtient un bon score, et le même visiteur sur un VPN d'entreprise un mauvais score, le score réagit au réseau et non au navigateur. La solution relève alors d'une discussion sur l'accès, et non d'une modification de l'automatisation.

Gardez les journaux exempts de données personnelles. Un score et un nom d'action suffisent pour diagnostiquer la plupart des problèmes, et stocker davantage crée une obligation de confidentialité dont vous n'avez pas besoin.

Scraper de manière responsable

Vérifiez le robots.txt et les conditions d'utilisation du site avant une tâche de scraping. Gardez un rythme bas, évitez de collecter des données personnelles dont vous n'avez pas besoin, et rappelez-vous qu'une vérification par score est la façon choisie par le site pour se protéger. La contourner à grande échelle est le signe que la tâche doit être reconsidérée ou convenue avec le propriétaire. Le guide sur la légalité du web scraping couvre le cadre plus large.

Prochaines étapes