Il y a trois façons pour un script de bouger une souris sur une page : téléporter le curseur droit sur sa cible, ajouter un humaniseur qui dessine une courbe lisse, ou payer une API commerciale qui livre un mouvement "humanlike" clé en main. Le modèle de curseur de bureau de cside, cursor_v2, attrape les trois à la façon dont bouge la souris. Cet article donne les taux de capture, sur ordinateur, de bout en bout.
Rien de tout cela ne dépend du navigateur. Que l'automatisation tourne sur du Playwright brut, une bibliothèque d'humanisation comme WindMouse ou NaturalMouse, ou l'API BrowserQL de browserless.io, le modèle note la même chose : le mouvement qu'une main réelle laisse derrière elle, qu'un script ne peut toujours pas reproduire. C'est le complément d'un article précédent sur l'art d'attraper les bots à leur façon de bouger ; ici, l'accent est mis sur Playwright et browserless.io en particulier.
La version courte :
- Un script Playwright qui téléporte le curseur, sans aucune humanisation, est attrapé 98,2% du temps, à froid.
- Ajoutez un humaniseur standard (courbes de bézier) ou une bibliothèque basée sur la physique comme WindMouse ou NaturalMouse, et le taux de capture bouge à peine : de 97% à 100%.
- L'API BrowserQL de browserless.io livre un mode "humanlike" avec des trajectoires de souris courbées et des événements de clic de confiance, clé en main. Environ 70% du trafic browserless contre lequel nous testons tourne déjà avec ce mode activé.
- Courber une trajectoire n'est pas la même chose que bouger comme une personne. cursor_v2 signale 100% des sessions "humanlike" browserless en direct, à un taux de faux positifs inférieur à 1% sur les vrais humains.
Quelle que soit la façon dont vous générez la trajectoire
Le Playwright brut est souvent exactement ce qu'il semble être : vous appelez mouse.move(x, y) et le curseur saute droit sur la cible sans trajectoire entre les deux. C'est le cas le moins cher, et il est aussi facile à attraper qu'il en a l'air.
Un humaniseur change la forme. Au lieu d'un saut, le curseur suit une courbe de bézier lisse. Les bibliothèques basées sur la physique vont plus loin : WindMouse et NaturalMouse sont conçues pour imiter l'accélération, le dépassement et les petites corrections qu'une main réelle effectue. Chacune a été notée sur ordinateur, de bout en bout, à travers le modèle déployé.
| Approche | n | AUC | Recall @ FPR ≤ 1% | Attrapé |
|---|---|---|---|---|
| Téléportation en ligne droite (sans humaniseur) | 500 | 0,995 | 98,6% | 98,2% |
| Humaniseur à courbe de bézier (réservé) | 500 | 0,999 | 99,6% | 99,6% |
| Humaniseur de bézier quantifié (réservé) | 500 | 0,999 | 99,6% | 99,6% |
| WindMouse (basé sur la physique) | 499 | 1,000 | 99,4% | 97,0% |
| NaturalMouse (basé sur la physique) | 500 | 1,000 | 100,0% | 100,0% |
Contrôle : 160 mouvements humains réels, réservés, notés par le même pipeline. Zéro signalé.
Courber la trajectoire change son apparence, pas ce qu'une main laisse réellement. Chaque approche ici reste au-dessus de 97% attrapé, sur ordinateur, rien qu'au mouvement.
Puis browserless.io entre en scène
browserless.io vend du Chromium headless distant sous forme d'API. Vous pilotez un vrai navigateur via un langage de requête appelé BrowserQL sans exécuter Chromium vous-même. C'est un produit légitime avec des usages légitimes, et c'est aussi une façon populaire de faire tourner des bots.
BrowserQL livre un mode "humanlike". Activez-le et les clics et défilements se déclenchent comme des événements de confiance, et la souris est routée par des trajectoires courbées, à forme humaine, au lieu de se téléporter de A à B. Dans le trafic contre lequel nous testons, environ 70% tourne déjà avec le mode "humanlike" activé. Les gens essaient déjà.
Courbé n'est pas humain
La forme d'une trajectoire est la moitié de ce qu'une main laisse, pas la totalité. cursor_v2, le même modèle qui a signalé un agent LLM pilotant le navigateur furtif Camoufox dans un test précédent, ne note pas un mouvement sur sa seule forme. Quoi qu'il note d'autre, le mode "humanlike" n'y a pas touché. Une trajectoire courbée est une version plus jolie de la même téléportation.
En direct, sur du trafic réel capturé de browserless.io avec le mode "humanlike" activé, cursor_v2 attrape tout. Dans une comparaison contrôlée de 54 sessions réelles capturées de browserless face à 529 sessions humaines réelles, le système combiné a attrapé les 54 et signalé environ 1% des humains.
| Métrique | Résultat |
|---|---|
| Sessions "humanlike" browserless en direct attrapées | 100% |
| Recall en distribution @ FPR ≤ 1% | 99,5% |
| Taux de faux positifs humains au seuil | 0,6% |

browserless.io a bien fait la géométrie : trajectoires courbées, événements de clic de confiance. Attrapé quand même, car la forme d'une trajectoire n'a jamais été toute l'histoire. La même indépendance parcourt la pile à deux étages dans attraper les bots qui ne veulent pas être attrapés.
Ce que cela attrape, quel que soit le navigateur
Rien de tout cela ne dépend de la façon dont le navigateur a été automatisé. Playwright, Puppeteer, une session CDP brute, l'API de browserless.io : le modèle ne voit rien de tout ça. Il voit s'il y avait une main réelle sur la souris, et un script, aussi bien qu'il feigne la forme d'une trajectoire, n'en est toujours pas une.
Si vous cherchez précisément à barrer la route à Playwright, comment bloquer Playwright couvre le côté fingerprint ; le mouvement est la couche qui tient quand le fingerprint est propre. Pour l'ensemble de signaux plus large derrière l'automatisation furtive, voyez comment détecter les agents d'IA et les navigateurs furtifs.
Les limites, dites clairement
Un compte rendu de sécurité ne vaut la peine d'être lu que s'il est honnête sur ses limites.
Le taux de faux positifs est faible, pas nul. Au seuil déployé, le taux de faux positifs humains est de 0,6%, et dans la comparaison environ 1% des vrais humains ont été signalés. C'est un coût réel, et c'est pourquoi la production attend plusieurs mouvements notés comme bot d'affilée avant d'agir, plutôt que de réagir à un seul geste étrange.
Le résultat browserless est mesuré face à un échantillon fini de sessions humaines réelles, pas face à chaque curseur qui existera jamais. Lisez le 100% comme validé pour cette capture et ce contrôle, et le levier ouvert comme l'ampleur du vrai mouvement humain contre lequel calibrer.
Ces chiffres sont la vue par mouvement, avant l'anti-rebond de production. Ils omettent aussi volontairement ce que le modèle regarde réellement, ses seuils, et tout ce qu'un auteur de bots pourrait utiliser pour s'y ajuster.
Comment cside s'intègre
cside vous donne une visibilité sur chaque script, requête et session qui touche votre site, ainsi que le signal comportemental pour distinguer les vrais utilisateurs de l'automatisation qui se cache parmi eux. Le modèle de curseur est une couche d'une pile de détection qui sépare déjà humains, bons bots et agents malveillants à la couche du navigateur, après que les indices statiques ont été falsifiés.
Découvrez la détection d'agents d'IA de cside





