Skip to main content
Blog
Blog Attacks

Comment Bloquer l'Automatisation Playwright sur Votre Site Web

Playwright pilote de vrais navigateurs identiques à des humains au niveau réseau. Voici comment le détecter, et pourquoi robots.txt et le blocage d'IP échouent.

Jun 26, 2026 15 min read
Comment Bloquer l'Automatisation Playwright sur Votre Site Web
Table des matières

En bref : détecter Playwright dans la session du navigateur, pas au niveau du réseau

  • Aucun indice réseau : Chaque éditeur de WAF promet d'attraper l'automatisation, mais Playwright pilote de vraies instances Chromium, Firefox et WebKit avec un TLS valide, des user-agents à jour et des en-têtes HTTP/2 propres. Il n'y a aucun indice au niveau réseau, et Forrester a renommé la catégorie analyste en Bot and Agent Trust Management Software au Q4 2025 pour refléter exactement ce basculement.
  • La signature dans le navigateur : La signature dans le navigateur tient bon: navigator.webdriver mis à true, marqueurs de contexte window.__playwright, timing d'interaction statistiquement uniforme, événements hover absents avant les clics, trajectoires de pointeur en ligne droite, profondeur de scroll atterrissant exactement sur l'élément cible, et zéro correction d'entrée. cside lit ces signaux depuis l'intérieur de la session.
  • Politique par page : Si Playwright pilote votre suite de tests interne et votre monitoring synthétique, autorisez-le sur une infrastructure connue et appliquez une politique par page sur checkout, création de compte et prix. Si vous voyez des signatures Playwright hors de cette liste blanche, bloquez sur les signaux au niveau navigateur plutôt que de rétro-ingénier les patchs furtifs.

Peu de temps ? Découvrez la détection d'agents IA de cside. Elle couvre tout ce qui suit en un seul déploiement.

Playwright est un framework d'automatisation de navigateur conçu et maintenu par Microsoft. Il pilote de véritables instances de navigateur Chromium, Firefox et WebKit, exécute pleinement JavaScript et produit des sessions qui paraissent indiscernables de vrais utilisateurs au niveau réseau. Cela en fait l'outil de prédilection d'une catégorie grandissante d'agents IA, de scrapers et d'opérations de fraude spécifiquement conçus pour échapper à la détection.

Bloquer Playwright n'a rien à voir avec le blocage d'un crawler déclaré. Il n'y a aucune chaîne d'user-agent à refuser, aucune plage d'IP publiée à restreindre et aucune directive robots.txt qu'il respectera. La détection nécessite de lire ce qui se passe à l'intérieur de la session du navigateur elle-même. Forrester a noté ce basculement au quatrième trimestre 2025, en renommant officiellement sa catégorie d'analystes en Bot and Agent Trust Management Software pour refléter le fait que le problème ne réside plus dans les bots à la périphérie du réseau, mais dans les agents qui opèrent au sein de vraies sessions de navigateur. Pour le schéma plus large applicable aux agents automatisés, consultez notre guide pour bloquer les agents IA sur votre site web.


Qu'est-ce que Playwright ?

Réponse rapide : Playwright est une bibliothèque open source d'automatisation de navigateur maintenue par Microsoft. Elle lance et pilote de véritables instances de navigateur (Chromium, Firefox, WebKit), exécute JavaScript, gère les flux d'authentification et interagit avec les interfaces des applications web. Elle est largement utilisée pour des tests légitimes, mais alimente aussi une part importante des agents IA, des scrapers et des opérations de fraude automatisée qui ciblent les sites web en production.

Contrairement aux outils d'automatisation plus anciens comme Selenium ou PhantomJS, Playwright a été conçu pour les applications web modernes. Il gère le contenu dynamique, les applications monopages, le shadow DOM, les iframes et les flux d'authentification complexes sans les lacunes de rendu que présentaient les outils antérieurs. Lorsqu'il est utilisé par un agent malveillant ou non déclaré, ces capacités le rendent particulièrement difficile à distinguer d'un véritable utilisateur au niveau de l'infrastructure.

Les sessions Playwright laissent une empreinte réseau propre : un handshake TLS standard, un user-agent de navigateur à jour, des en-têtes HTTP/2 valides et aucun fingerprint d'automatisation évident dans le flux de requêtes. La session paraît légitime parce qu'elle exécute un navigateur légitime. Les opérateurs qui déploient des configurations axées sur l'évasion superposent également des bibliothèques de furtivité comme playwright-stealth ou rebrowser-patches, qui suppriment les signaux par défaut de l'environnement JavaScript sur lesquels s'appuient les scripts de détection les plus simples.


Playwright vs Selenium vs Puppeteer : Pourquoi la Comparaison Importe pour la Détection

Réponse rapide : Selenium, Puppeteer et Playwright pilotent tous de vrais navigateurs, mais leur architecture diffère de manières qui déterminent ce que chacun laisse derrière lui. Selenium est le plus facile à détecter par défaut. Puppeteer et Playwright sont plus difficiles, et Playwright est actuellement le plus répandu dans les déploiements d'agents IA et de scraping parce qu'il couvre Chromium, Firefox et WebKit depuis une seule API.

Selenium est le plus ancien des trois. Il communique avec les navigateurs via le protocole WebDriver, qui définit navigator.webdriver sur true par défaut et laisse une empreinte cohérente du Chrome DevTools Protocol. La plupart des stacks de détection identifient les sessions Selenium de base de manière fiable. Puppeteer est l'équivalent de Google, limité à Chromium : il pilote Chromium via le Chrome DevTools Protocol et partage nombre des mêmes signaux d'environnement. Playwright, développé par Microsoft, est le plus capable des trois. Il pilote Chromium, Firefox et WebKit depuis une seule API et gère mieux les schémas d'applications web modernes que ses prédécesseurs. Playwright n'intègre pas de fonctionnalités de furtivité par défaut ; les opérateurs ajoutent des paquets communautaires tiers comme playwright-stealth ou rebrowser-patches (installés séparément) pour supprimer les signaux évidents de l'environnement JavaScript.

Pour la détection, le framework compte moins que ce qu'il laisse derrière dans la session du navigateur. Les trois produisent la même classe de signaux : un timing d'interaction statistiquement uniforme, des chemins de navigation qui suivent des séquences de tâches plutôt que des schémas exploratoires, et des propriétés d'environnement JavaScript qui diffèrent des sessions d'utilisateurs authentiques. La détection au niveau du navigateur lit ces signaux quel que soit le framework qui les a générés.


Pourquoi les Méthodes de Blocage Standard Échouent Face à Playwright

Réponse rapide : Playwright utilise de vrais navigateurs, donc le blocage d'IP, le filtrage par user-agent et robots.txt n'ont aucun effet. Un agent Playwright arrive avec une IP valide, un user-agent Chrome ou Firefox à jour et des signatures TLS correctes. Les outils au niveau réseau ne peuvent pas le distinguer d'une session humaine sans signaux au niveau du navigateur.

Le blocage traditionnel des bots repose sur l'hypothèse que le trafic automatisé semble différent à la périphérie du réseau. Playwright fait tomber cette hypothèse. Voici pourquoi chaque méthode standard échoue :

robots.txt : les agents Playwright ne consultent pas robots.txt. Le framework ne fournit aucun mécanisme pour le respecter, et tout agent l'utilisant pour le scraping ou la fraude n'a aucun intérêt à s'y conformer.

Filtrage par user-agent : les chaînes d'user-agent par défaut de Playwright sont identiques aux versions actuelles de Chrome, Firefox ou WebKit. Bloquer les user-agents d'automatisation courants (comme HeadlessChrome) n'a aucun effet, car Playwright lance des instances de navigateur avec interface qui rapportent l'user-agent de production standard.

Blocage d'IP : les agents Playwright s'exécutent généralement sur une infrastructure cloud, des residential proxies ou des réseaux distribués avec rotation d'adresses IP. Le blocage au niveau de l'IP n'attrape que les déploiements peu sophistiqués. Les opérations bien dotées font tourner des pools d'IP plus vite que les listes de blocage ne peuvent être mises à jour.

Règles WAF et CDN : les règles WAF et CDN qui recherchent des signaux d'automatisation dans les en-têtes ou les schémas de requête verront une session Playwright propre comme du trafic légitime. La couche HTTP est indiscernable.


Comment Playwright Est Détecté au Niveau du Navigateur

Réponse rapide : Playwright laisse des signaux à l'intérieur de la session du navigateur qui sont invisibles au niveau réseau mais lisibles depuis la page. Ils incluent des anomalies de timing dans les séquences d'interaction, des schémas de micro-mouvements absents ou irréalistes, l'uniformité des chemins de navigation et des propriétés spécifiques de l'environnement JavaScript qui diffèrent de celles des vraies sessions utilisateur.

La détection au niveau du navigateur lit les signaux que l'automatisation Playwright ne peut pas facilement supprimer sans briser ses propres fonctionnalités :

Timing des interactions : les utilisateurs humains produisent un timing irrégulier entre les actions, avec une variance naturelle dans le timing des clics, les intervalles entre les frappes au clavier et la vitesse de défilement. L'automatisation Playwright produit un timing statistiquement uniforme ou des séquences quasi identiques d'une session à l'autre. Même avec une randomisation ajoutée par l'opérateur, la distribution diffère de la variance humaine authentique.

Schémas de navigation et d'engagement : les utilisateurs humains présentent une navigation non linéaire, reviennent sur des pages précédentes, interagissent avec des éléments secondaires, survolent avant de cliquer et laissent des micro-corrections dans les champs de saisie. Les sessions Playwright suivent des séquences programmatiques, sans comportement exploratoire, sans hésitation du pointeur et sans saisies de formulaire abandonnées.

Propriétés de l'environnement JavaScript : Playwright expose des propriétés de runtime spécifiques qui diffèrent de celles des vraies sessions de navigateur. Les plus révélatrices sont navigator.webdriver (réglé sur true dans une version non patchée de Playwright), les marqueurs de contexte window.__playwright et window.__pw_manual, ainsi que des anomalies dans la chaîne du renderer WebGL et la résolution des API de timing. Les bibliothèques de furtivité tentent d'écraser ces valeurs, mais cela introduit des incohérences secondaires qui restent détectables.

Traces CDP et WebSocket : lorsque Playwright utilise le Chrome DevTools Protocol pour piloter le navigateur, des schémas WebSocket et des temporisations de messages spécifiques peuvent être observés depuis le contexte de la page. Ils ne sont pas visibles au niveau HTTP, mais ils sont lisibles par des scripts de détection au sein de la page. Pour une présentation plus complète de ces techniques, consultez notre guide pour détecter le trafic des agents IA sur votre site web.

Tableau de bord de détection d'agents IA de cside

Flux d'attaque montrant un agent Playwright lançant un vrai navigateur Chromium, passant les contrôles de couche réseau, exécutant JavaScript et des interactions de page, puis détecté uniquement par les signaux de timing, de mouvement et d'automatisation au niveau du navigateur

Ce que fait la sessionCouche réseau (WAF/CDN)Couche navigateur (cside)
IdentitéUtilisateur britannique récurrent, IP de proxy résidentielPlaywright Chromium, UA Chrome actuel
ActivitéSession de navigation standard47 pages produit en 8 minutes, 3,2 s de présence chacune
MouvementRien d'inhabituel journalisé0 événement de survol, trajectoire du pointeur en ligne droite, profondeur de défilement exactement sur l'élément de prix
TimingTrafic propre et à faible débit0 variance dans le timing entre les pages
RésultatServi sans défiClassée comme agent d'intelligence tarifaire → désorientation silencieuse

La Furtivité de Playwright et Pourquoi Elle N'Élimine Pas la Détection

Réponse rapide : Les bibliothèques de furtivité de Playwright (playwright-stealth, rebrowser-patches) suppriment les signaux évidents de l'environnement JavaScript qu'expose Playwright sans patch. Chaque patch introduit une incohérence secondaire, et aucun ne peut supprimer les signaux comportementaux produits par une session, là où lit la détection au niveau du navigateur.

Les bibliothèques de furtivité de Playwright, principalement playwright-stealth et rebrowser-patches, patchent l'environnement JavaScript pour éliminer les signaux d'automatisation les plus évidents. Elles réécrivent navigator.webdriver pour renvoyer undefined, injectent un objet window.chrome réaliste, normalisent navigator.plugins et corrigent le décalage de l'API des permissions produit par défaut par les contextes headless. Les installations de ces bibliothèques ont augmenté régulièrement à mesure que la détection au niveau réseau perd en efficacité et que les opérateurs déplacent leurs efforts vers la suppression des signaux d'environnement sur lesquels s'appuient les scripts les plus simples.

Les patches de furtivité créent cependant un autre problème. Chaque patch introduit sa propre incohérence secondaire. Une session de navigateur où navigator.webdriver renvoie undefined mais où window.chrome.runtime est un objet stub, où les chaînes de renderer WebGL suggèrent un GPU discret qui ne correspond pas à la plateforme déclarée, et où chaque clic atterrit à moins de deux pixels de l'élément ciblé sans aucun mouvement de survol préalable, n'est pas une session propre : c'est une session patchée. Les drapeaux patchés deviennent des preuves de confirmation plutôt que des signaux primaires.

Le signal le plus difficile à supprimer pour les outils de furtivité est comportemental. Les sessions Playwright, avec ou sans bibliothèques de furtivité, produisent des distributions de timing d'interaction, des schémas de défilement et des séquences de navigation qui diffèrent statistiquement des sessions humaines authentiques. Ces signaux ne vivent pas dans une propriété JavaScript qu'il serait possible de réécrire. Ils émergent de la manière dont les frameworks d'automatisation exécutent des instructions, et les supprimer nécessite de ralentir et de randomiser l'exécution, ce qui réduit le débit sans rendre nécessairement l'automatisation impraticable. Les attaques à faible volume ou distribuées peuvent toujours s'exécuter à un rythme ralenti, mais cela retire l'essentiel de l'avantage d'échelle pour lequel l'automatisation est déployée en premier lieu.


À Quoi Cela Ressemble en Pratique

Un concurrent du commerce de détail déploie un agent Playwright pour surveiller les prix de votre catalogue produits. L'agent lance une instance Chromium avec un user-agent Chrome à jour et une IP de residential proxy provenant d'une adresse britannique. Votre WAF l'enregistre comme une session de navigation standard d'un utilisateur britannique récurrent. Votre CDN le sert sans défi.

À l'intérieur de la session, cside observe : 47 pages produits visitées en 8 minutes, chacune avec un temps de présence de 3,2 secondes et une profondeur de défilement atteignant exactement l'élément de prix. Aucun événement de survol avant le moindre clic. Aucun mouvement de curseur en dehors du chemin d'interaction. Aucune variance dans le timing d'une page à l'autre. La trajectoire du pointeur sur chaque titre de produit suit une ligne droite identique.

La couche réseau a vu une session propre. La couche navigateur a vu une machine. cside classe la session comme un agent d'intelligence tarifaire et déclenche une réponse de politique, tandis que le journal du WAF n'affiche toujours rien d'anormal.

Un second schéma que cside observe fréquemment concerne la fraude au checkout. Un agent Playwright parcourt des plages de numéros de carte sur une page de checkout à faible friction, soumettant une tentative de commande toutes les 4 à 6 secondes sur des centaines de sessions. Chaque session utilise une IP résidentielle différente, un nouveau contexte de navigateur et une chaîne navigator.userAgent réaliste. Le WAF voit un trafic distribué et à faible débit provenant d'IP propres. La couche navigateur voit zéro mouvement de pointeur réel, aucune hésitation sur les champs de formulaire et navigator.webdriver renvoyant true dans les instances non patchées. La classification d'intention au niveau du navigateur stoppe l'énumération avant qu'aucune donnée de carte significative ne soit validée.


Options de Blocage et de Politique pour les Agents Playwright

Réponse rapide : une fois qu'une session Playwright est détectée au niveau du navigateur, les réponses de politique peuvent inclure le blocage strict, la redirection silencieuse (servir un contenu altéré à l'agent tout en laissant passer les vrais utilisateurs), le rate limiting ou l'autorisation avec surveillance. La bonne réponse dépend du caractère commercial, malveillant ou légitimement automatisé de l'intention de l'agent.

Le blocage strict (renvoyer un 403 ou une redirection) convient aux agents qui présentent des signaux d'intention malveillante, comme le credential stuffing, la fraude au checkout ou l'extraction de données à grand volume. La redirection silencieuse est souvent plus efficace contre les opérations d'intelligence tarifaire, car elle dégrade la qualité des données que reçoit le concurrent sans l'alerter qu'une détection a eu lieu.

Toutes les sessions Playwright ne sont pas hostiles. Les pipelines de test légitimes, les audits d'accessibilité et les outils d'automatisation internes utilisent eux aussi Playwright. Une politique efficace sépare l'intention de l'outillage : la question n'est pas « est-ce Playwright ? » mais « que cherche à faire cette session, et est-elle autorisée à le faire ? »

Les règles de politique par page permettent des réponses différentes selon les sections du site. Un agent Playwright sur la page de tarification présente un profil de risque différent de celui d'un agent sur le blog. Bloquer de manière uniforme sur l'ensemble du site risque de perturber des workflows automatisés légitimes. La même logique pilotée par l'intention s'applique aux navigateurs agentiques comme OpenAI Operator qui pilotent de vraies sessions de navigateur.


Faut-il Essayer de Bloquer Tout le Trafic Playwright ?

Réponse rapide : non. Playwright est aussi utilisé par des outils de test légitimes, des services de monitoring et l'automatisation interne. La bonne approche est la classification d'intention, et non le blocage de l'outil. Détectez ce que fait l'agent, pas l'outil qu'il utilise, et appliquez une politique fondée sur le comportement de la session et le risque qu'elle présente pour cette page ou cette fonction précise.

Les organisations qui tentent de bloquer tout le trafic Playwright constatent généralement deux conséquences : elles perturbent leurs propres pipelines CI/CD et outils de monitoring, et elles poussent les agents adverses à basculer vers des frameworks équivalents (Puppeteer, Selenium, automatisation de navigateur sur mesure) qui présentent des défis de détection identiques.

L'approche la plus durable est la classification d'intention au niveau du navigateur. Une session Playwright qui réalise un contrôle de monitoring synthétique légitime, une session Playwright qui scrape des données de prix et une session Playwright qui tente du card testing sur un formulaire de checkout utilisent toutes le même outillage. C'est le comportement de la session qui les distingue. Lors des tests contrôlés de cside, les outils traditionnels de détection de bots n'ont pas réussi à classer correctement les sessions d'agents IA malveillants dans 81 scénarios de test sur 100, un écart qui relève de l'architecture plutôt que de la configuration. La même approche au niveau du navigateur s'étend au blocage des scrapers de contenu IA qui arrivent sans user-agent déclaré.

Mike Kutlu
Client-Side Security Consultant

Client-side security consultant at cside. 10+ years of experience implementing technology solutions for enterprises (previously at Oracle, Cloudflare, and Splunk). Now helping teams use client-side intelligence to catch & reduce fraud.

FAQ

Frequently Asked Questions

Playwright pilote de véritables instances de navigateur qui produisent des signatures TLS valides, des chaînes d'user-agent à jour et des en-têtes HTTP standard. Contrairement aux crawlers déclarés comme GPTBot ou CCBot qui s'identifient et peuvent être bloqués par user-agent ou robots.txt, les sessions Playwright sont identiques à de vraies sessions humaines au niveau réseau. La détection nécessite de lire des signaux à l'intérieur de la session du navigateur.

Non. Playwright ne consulte ni ne respecte `robots.txt`. Le framework n'a aucun mécanisme de conformité intégré, et les agents qui utilisent Playwright pour le scraping ou l'automatisation n'ont aucune obligation ni aucun intérêt à suivre les directives `robots.txt`. robots.txt n'est efficace que contre les crawlers déclarés et coopératifs.

Les règles WAF standard fondées sur la réputation d'IP, la correspondance d'user-agent et l'analyse des en-têtes de requête ne détecteront pas Playwright de façon fiable. Playwright produit un trafic propre au niveau réseau. Les WAF qui intègrent une détection d'anomalies comportementales peuvent signaler certains schémas, mais ils n'ont pas accès aux signaux internes au navigateur (timing des interactions, schémas de navigation, propriétés de l'environnement JavaScript) qui distinguent Playwright d'un véritable utilisateur.

Les signaux clés incluent un timing d'interaction statistiquement uniforme d'une session à l'autre, l'absence d'événements de survol avant les clics, des trajectoires de pointeur en ligne droite, une profondeur de défilement atteignant exactement les éléments ciblés, l'absence totale d'événements de correction de saisie, ainsi que des propriétés spécifiques du runtime JavaScript comme `navigator.webdriver` réglé sur `true` et la présence de marqueurs de contexte `window.__playwright`. Ces signaux ne sont pas visibles dans les journaux HTTP, mais ils sont lisibles par des scripts de détection au sein de la page.

Utilisez la classification d'intention plutôt que le blocage de l'outil. Un usage légitime de Playwright (tests internes, monitoring synthétique, audits d'accessibilité) suit des schémas comportementaux cohérents et restreints, liés à une infrastructure connue. Un usage malveillant de Playwright présente des signatures comportementales différentes en termes d'échelle, de distribution de timing, de cibles de navigation et de séquences d'interaction. Des règles de politique par page vous permettent d'appliquer des réponses différentes sur les pages à haut risque comme le checkout, la création de compte et la tarification, sans perturber l'automatisation légitime ailleurs.

Selenium est le plus facile à détecter par défaut. Il pilote les navigateurs via le protocole WebDriver, qui définit `navigator.webdriver` sur `true` par défaut et laisse une empreinte cohérente du Chrome DevTools Protocol. La plupart des stacks de détection identifient Selenium sans patch de manière fiable. Playwright est souvent associé à des bibliothèques de furtivité tierces (playwright-stealth, rebrowser-patches, deux paquets communautaires à installer séparément) qui suppriment les signaux évidents de l'environnement JavaScript, si bien que la détection en surface en attrape moins. Au niveau du navigateur, en revanche, les deux frameworks produisent la même classe de signaux comportementaux, timing d'interaction uniforme, trajectoires de pointeur en ligne droite, absence d'événements de survol, et la détection qui lit à l'intérieur de la session les attrape tous les deux quel que soit le framework.

Puppeteer est la bibliothèque d'automatisation de Chromium de Google et Playwright est l'équivalent multi-navigateurs de Microsoft. Puppeteer pilote Chromium via le Chrome DevTools Protocol ; Playwright pilote Chromium, Firefox et WebKit depuis une seule API. Pour la détection des bots, ils se comportent de manière quasi identique : tous deux laissent la même classe de signaux comportementaux dans une session (timing uniforme, absence de micro-mouvements, navigation programmatique) et disposent de bibliothèques de furtivité matures. La différence pratique est que la portée multi-navigateurs de Playwright le rend plus courant dans les déploiements actuels d'automatisation et d'agents IA que Puppeteer.

Surveillez et sécurisez vos scripts tiers

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Commencez gratuitement, ou essayez Business avec un essai de 14 jours.

Interface du tableau de bord cside affichant la surveillance des scripts et les analyses de sécurité
Related Articles
Réserver une démonstration

Envie de passer tout ça en revue avec un ingénieur ?

Trente minutes, sur votre propre site. Pas de slides.

Nous vous montrerons :

Quels scripts tiers s'exécutent actuellement sur votre site
Où vous en êtes sur les exigences PCI DSS 6.4.3 et 11.6.1
Quelle part de votre trafic provient de bots et d'agents IA

Vous préférez simplement poser une question ?

Recherche de créneaux…

Humains uniquement. On le saurait.

Un problème pour réserver ? Ouvrir le calendrier dans un nouvel onglet

Quel problème cherchez-vous à résoudre ?

Dites-le-nous en une ligne et nous reviendrons vers vous avec quelque chose d'utile, pas un discours générique.

Nous aidons souvent sur :

Voir quels scripts tiers s'exécutent sur votre site
Les preuves pour PCI DSS 6.4.3 et 11.6.1
Les bots, les agents IA et le vol de comptes

Vous préférez réserver un créneau ? Choisir un créneau