Skip to main content
Blog
Blog Attacks

Cómo Bloquear la Automatización con Playwright en Tu Sitio Web

Playwright ejecuta navegadores reales que en la capa de red son idénticos a los humanos. Aquí te explicamos cómo detectarlo y por qué fallan robots.txt y el bloqueo de IP.

Jun 26, 2026 10 min read
Cómo Bloquear la Automatización con Playwright en Tu Sitio Web

Playwright es un framework de automatización de navegadores creado y mantenido por Microsoft. Controla instancias reales de navegadores Chromium, Firefox y WebKit, ejecuta JavaScript por completo y produce sesiones que en la capa de red son indistinguibles de las de usuarios reales. Eso lo convierte en la herramienta preferida de una categoría en crecimiento de agentes de IA, scrapers y operaciones de fraude diseñados específicamente para evadir la detección.

Bloquear Playwright no es como bloquear un crawler declarado. No hay ninguna cadena de user-agent que denegar, ningún rango de IP publicado que restringir y ninguna directiva de robots.txt que vaya a respetar. La detección requiere leer lo que ocurre dentro de la propia sesión del navegador. Forrester señaló este cambio en el cuarto trimestre de 2025, renombrando formalmente la categoría de analistas a Bot and Agent Trust Management Software para reflejar que el problema ya no son los bots en el borde de la red, sino los agentes que operan dentro de sesiones de navegador reales. Para conocer el patrón más amplio en los agentes automatizados, consulta nuestra guía para bloquear agentes de IA en tu sitio web.


¿Qué Es Playwright?

Respuesta rápida: Playwright es una biblioteca de automatización de navegadores de código abierto mantenida por Microsoft. Lanza y controla instancias reales de navegadores (Chromium, Firefox, WebKit), ejecuta JavaScript, gestiona flujos de autenticación e interactúa con las interfaces de aplicaciones web. Se usa ampliamente para pruebas legítimas, pero también impulsa una parte significativa de los agentes de IA, scrapers y operaciones de fraude automatizado que tienen como objetivo sitios web en producción.

A diferencia de herramientas de automatización anteriores como Selenium o PhantomJS, Playwright se diseñó para aplicaciones web modernas. Gestiona contenido dinámico, single-page applications, shadow DOM, iframes y flujos de autenticación complejos sin las carencias de renderizado que mostraban las herramientas más antiguas. Cuando lo usa un agente malicioso o no declarado, esas capacidades hacen que sea especialmente difícil distinguirlo de un usuario real a nivel de infraestructura.

Las sesiones de Playwright dejan una huella de red limpia: un handshake TLS estándar, un user-agent de navegador actual, cabeceras HTTP/2 válidas y ningún fingerprint de automatización evidente en el flujo de solicitudes. La sesión parece legítima porque está ejecutando un navegador legítimo. Los operadores que despliegan configuraciones centradas en la evasión también superponen bibliotecas de sigilo como playwright-stealth o rebrowser-patches, que suprimen las señales del entorno de JavaScript por defecto en las que se apoyan los scripts de detección más simples.


Por Qué Fallan los Métodos de Bloqueo Estándar Contra Playwright

Respuesta rápida: Playwright usa navegadores reales, así que el bloqueo de IP, el filtrado de user-agent y robots.txt no tienen ningún efecto. Un agente de Playwright llega con una IP válida, un user-agent actual de Chrome o Firefox y firmas TLS correctas. Las herramientas de la capa de red no pueden distinguirlo de una sesión humana sin señales de la capa del navegador.

El bloqueo de bots tradicional parte del supuesto de que el tráfico automatizado tiene un aspecto distinto en el borde de la red. Playwright elimina ese supuesto. Aquí tienes por qué falla cada método estándar:

robots.txt: Los agentes de Playwright no comprueban el robots.txt. El framework no ofrece ningún mecanismo para respetarlo, y cualquier agente que lo use para scraping o fraude no tiene ningún incentivo para cumplirlo.

Filtrado de user-agent: Las cadenas de user-agent por defecto de Playwright son idénticas a las versiones actuales de Chrome, Firefox o WebKit. Bloquear los user-agent de automatización comunes (como HeadlessChrome) no tiene ningún efecto, porque Playwright lanza instancias de navegador con interfaz gráfica que reportan el user-agent estándar de producción.

Bloqueo de IP: Los agentes de Playwright suelen ejecutarse en infraestructura en la nube, residential proxies o redes distribuidas con direcciones IP rotatorias. El bloqueo a nivel de IP solo atrapa los despliegues poco sofisticados. Las operaciones con buenos recursos rotan por pools de IP más rápido de lo que se pueden actualizar las blocklists.

Reglas de WAF y CDN: Las reglas de WAF y CDN que buscan señales de automatización en las cabeceras o los patrones de solicitud verán una sesión limpia de Playwright como tráfico legítimo. La capa HTTP es indistinguible.


Cómo Se Detecta Playwright en la Capa del Navegador

Respuesta rápida: Playwright deja señales dentro de la sesión del navegador que son invisibles en la capa de red pero que se pueden leer desde dentro de la página. Entre ellas están las anomalías de tiempo en las secuencias de interacción, los patrones de micromovimiento ausentes o poco realistas, la uniformidad de las rutas de navegación y propiedades específicas del entorno de JavaScript que difieren de las sesiones de usuarios reales.

La detección en la capa del navegador lee las señales que la automatización de Playwright no puede suprimir fácilmente sin romper su propia funcionalidad:

Tiempo de interacción: Los usuarios humanos producen tiempos irregulares entre acciones, con una variación natural en el tiempo de los clics, los intervalos entre pulsaciones de teclas y la velocidad de scroll. La automatización con Playwright produce tiempos estadísticamente uniformes o secuencias casi idénticas entre sesiones. Incluso con la aleatorización que añade el operador, la distribución difiere de la variación humana real.

Patrones de navegación e interacción: Los usuarios humanos muestran una navegación no lineal, vuelven a visitar páginas anteriores, interactúan con elementos secundarios, pasan el cursor por encima antes de hacer clic y dejan microcorrecciones en los campos de entrada. Las sesiones de Playwright siguen secuencias programáticas sin comportamiento exploratorio, sin titubeos del puntero y sin entradas de formulario abandonadas.

Propiedades del entorno de JavaScript: Playwright expone propiedades específicas del runtime que difieren de las sesiones de navegador reales. Las más diagnósticas incluyen navigator.webdriver (con valor true en un Playwright sin parchear), los marcadores de contexto window.__playwright y window.__pw_manual, y anomalías en la cadena del renderizador WebGL y en la resolución de la API de timing. Las bibliotecas de sigilo intentan sobrescribir estos valores, pero al hacerlo introducen inconsistencias secundarias que siguen siendo detectables.

Trazas de CDP y WebSocket: Cuando Playwright usa el Chrome DevTools Protocol para controlar el navegador, se pueden observar patrones específicos de WebSocket y tiempos de los mensajes desde dentro del contexto de la página. Estos no son visibles en la capa HTTP, pero sí se pueden leer mediante scripts de detección en la propia página. Para un recorrido más amplio de estas técnicas, consulta nuestra guía para detectar tráfico de agentes de IA en tu sitio web.

Panel de detección de agentes de IA de cside


Cómo Se Ve Esto en la Práctica

Un competidor minorista despliega un agente de Playwright para monitorear los precios de tu catálogo de productos. El agente lanza una instancia de Chromium con un user-agent actual de Chrome y una IP de residential proxy desde una dirección del Reino Unido. Tu WAF lo registra como una sesión de navegación estándar de un usuario recurrente del Reino Unido. Tu CDN lo sirve sin ningún desafío.

Dentro de la sesión, cside observa: 47 páginas de producto visitadas en 8 minutos, cada una con un tiempo de permanencia de 3,2 segundos y una profundidad de scroll que llega exactamente al elemento de precio. Ningún evento hover antes de ningún clic. Ningún movimiento del cursor fuera de la ruta de interacción. Cero variación en el tiempo entre páginas. La trayectoria del puntero sobre cada título de producto sigue una línea recta idéntica.

La capa de red vio una sesión limpia. La capa del navegador vio una máquina. cside clasifica la sesión como un agente de inteligencia de precios y activa una respuesta de política, mientras que el log del WAF sigue sin mostrar nada inusual.

Un segundo patrón que cside ve con frecuencia tiene que ver con el fraude en el checkout. Un agente de Playwright itera por rangos de números de tarjeta en una página de checkout de baja fricción, enviando un intento de pedido cada 4 a 6 segundos a lo largo de cientos de sesiones. Cada sesión usa una IP residencial diferente, un contexto de navegador nuevo y una cadena navigator.userAgent realista. El WAF ve tráfico distribuido y de baja tasa desde IP limpias. La capa del navegador ve cero movimiento real del puntero, ningún titubeo en los campos de formulario y navigator.webdriver devolviendo true en las instancias sin parchear. La clasificación por intención en la capa del navegador detiene la enumeración antes de que se valide algún dato de tarjeta significativo.


Opciones de Bloqueo y Política para Agentes de Playwright

Respuesta rápida: Una vez que se detecta una sesión de Playwright en la capa del navegador, las respuestas de política pueden incluir el bloqueo total, el desvío silencioso (servir contenido alterado al agente mientras se deja pasar a los usuarios reales), el rate limiting o permitir con monitoreo. La respuesta adecuada depende de si la intención del agente es comercial, maliciosa o legítimamente automatizada.

El bloqueo total (devolver un 403 o una redirección) es apropiado para agentes que muestran señales de intención maliciosa, como credential stuffing, fraude en el checkout o extracción de datos de alto volumen. El desvío silencioso suele ser más eficaz para las operaciones de inteligencia de precios, ya que degrada la calidad de los datos que recibe el competidor sin alertarle de que se ha producido la detección.

No todas las sesiones de Playwright son hostiles. Los pipelines de pruebas legítimos, las auditorías de accesibilidad y las herramientas de automatización interna también usan Playwright. Una política eficaz separa la intención de la herramienta: la pregunta no es "¿esto es Playwright?", sino "¿qué intenta hacer esta sesión y está autorizada a hacerlo?".

Las reglas de política por página permiten respuestas diferentes en distintas secciones del sitio. Un agente de Playwright en la página de precios presenta un perfil de riesgo distinto al de uno en el blog. Bloquear de forma uniforme en todo el sitio corre el riesgo de interrumpir flujos de trabajo automatizados legítimos. La misma lógica guiada por la intención se aplica a los navegadores agénticos como OpenAI Operator, que controlan sesiones de navegador reales.


¿Deberías Intentar Bloquear Todo el Tráfico de Playwright?

Respuesta rápida: No. Playwright también lo usan herramientas de pruebas legítimas, servicios de monitoreo y la automatización interna. El enfoque correcto es la clasificación por intención, no el bloqueo por herramienta. Detecta lo que está haciendo el agente, no qué herramienta usa, y aplica la política en función del comportamiento de la sesión y del riesgo que presenta para esa página o función concreta.

Las organizaciones que intentan bloquear todo el tráfico de Playwright suelen encontrarse con dos resultados: interrumpen sus propios pipelines de CI/CD y herramientas de monitoreo, y empujan a los agentes adversarios a cambiar a frameworks equivalentes (Puppeteer, Selenium, automatización de navegador personalizada) que presentan exactamente los mismos retos de detección.

El enfoque más duradero es la clasificación por intención en la capa del navegador. Una sesión de Playwright completando una comprobación legítima de monitoreo sintético, una sesión de Playwright haciendo scraping de datos de precios y una sesión de Playwright intentando card testing en un formulario de checkout usan todas la misma herramienta. El comportamiento de la sesión las distingue. En las pruebas controladas de cside, las herramientas tradicionales de detección de bots no lograron clasificar correctamente las sesiones de agentes de IA maliciosos en 81 de cada 100 escenarios de prueba, una brecha que refleja la arquitectura más que la configuración. El mismo enfoque en la capa del navegador se extiende al bloqueo de scrapers de contenido de IA que llegan sin un user-agent declarado.

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 controla instancias de navegador reales que producen firmas TLS válidas, cadenas de user-agent actuales y cabeceras HTTP estándar. A diferencia de los crawlers declarados como GPTBot o CCBot, que se identifican y se pueden bloquear por user-agent o robots.txt, las sesiones de Playwright son idénticas a las sesiones humanas reales en la capa de red. La detección requiere leer señales desde dentro de la sesión del navegador.

No. Playwright no comprueba ni respeta el `robots.txt`. El framework no tiene ningún mecanismo de cumplimiento incorporado, y los agentes que usan Playwright para scraping o automatización no tienen ninguna obligación ni incentivo para seguir las directivas de `robots.txt`. robots.txt solo es eficaz contra crawlers declarados y cooperativos.

Las reglas WAF estándar basadas en reputación de IP, coincidencia de user-agent y análisis de cabeceras de solicitud no detectarán Playwright de forma fiable. Playwright produce tráfico limpio en la capa de red. Los WAF que incorporan detección de anomalías de comportamiento pueden marcar algunos patrones, pero carecen de acceso a las señales internas del navegador, como el tiempo de interacción, los patrones de navegación y las propiedades del entorno de JavaScript, que distinguen a Playwright de un usuario real.

Las señales clave incluyen un tiempo de interacción estadísticamente uniforme entre sesiones, la ausencia de eventos hover antes de los clics, trayectorias del puntero en línea recta, una profundidad de scroll que llega exactamente a los elementos objetivo, cero eventos de corrección de entrada y propiedades específicas del runtime de JavaScript, como `navigator.webdriver` con valor `true` y la presencia de marcadores de contexto `window.__playwright`. Estas señales no son visibles en los logs HTTP, pero sí se pueden leer mediante scripts de detección en la propia página.

Usa la clasificación por intención en lugar del bloqueo por herramienta. El uso legítimo de Playwright, como las pruebas internas, el monitoreo sintético y las auditorías de accesibilidad, sigue patrones de comportamiento consistentes y acotados, vinculados a infraestructura conocida. El uso malicioso de Playwright muestra firmas de comportamiento distintas en cuanto a escala, distribución temporal, destinos de navegación y secuencias de interacción. Las reglas de política por página te permiten aplicar respuestas diferentes en páginas de alto riesgo como el checkout, la creación de cuentas y los precios, sin interrumpir la automatización legítima en otras partes.

Monitoriza y Asegura tus Scripts de Terceros

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

Comienza gratis, o prueba Business con una prueba de 14 días.

Interfaz del panel de cside mostrando monitorización de scripts y análisis de seguridad
Related Articles
Reservar una demo