Cloudflare: Turnstile, error 1020 y huella TLS
Cloudflare protege una gran parte de la web: desafíos JavaScript, Turnstile, cortafuegos de aplicación. Así se identifican los bloqueos (incluido el error 1020), se entiende su causa y se abordan con cuidado.
Cloudflare, guardián de una gran parte de la web
Cloudflare se interpone entre los visitantes y muchos sitios: filtra el tráfico, cachea recursos y aplica reglas de seguridad. Una gran parte de los sitios que quieres alcanzar pasa por él.
Para el acceso automatizado, eso suele significar un desafío JavaScript, una comprobación Turnstile o un bloqueo por regla de cortafuegos — de ahí el interés de entender lo que está en juego.
El error 1020: acceso denegado por el cortafuegos
El error 1020 lo devuelve el cortafuegos de aplicación (WAF) de Cloudflare cuando una regla bloquea la petición. Indica un rechazo a nivel de regla, no un problema de renderizado: el contenido nunca se sirve.
Causas comunes: una regla que apunta a un patrón de URL, un User-Agent, un rango de IP o un país. La respuesta es una página de Cloudflare explícita, a menudo HTTP 403.
- Devuelto por el WAF (una regla de bloqueo)
- A menudo HTTP 403, página de Cloudflare dedicada
- Activado por URL, User-Agent, IP o país
Turnstile y los desafíos JavaScript
Turnstile es la alternativa de Cloudflare al CAPTCHA: un desafío, a menudo invisible, que se ejecuta en la página. El cliente debe producir un token válido para continuar.
Otras páginas usan un desafío JavaScript (« checking your browser ») que espera unos segundos y recarga. En ambos casos hay que ejecutar la página: una petición HTTP desnuda queda bloqueada.
La huella TLS y las cabeceras
Cloudflare puede analizar cómo se establece la conexión: huella TLS (orden de extensiones, versiones), cabeceras HTTP, coherencia general. Un cliente cuya firma difiere de un navegador real es más fácilmente sospechoso.
Un navegador headless moderno, bien configurado, presenta una huella coherente con un navegador real — lo que permite superar este análisis.
Diagnosticar un bloqueo de Cloudflare
Antes de corregir, identifica la naturaleza del bloqueo: código HTTP, presencia de una página de Cloudflare, mención « Turnstile », « checking your browser » o un código de error (1020, 1015…).
Cada indicio apunta a una causa: el error 1020 señala una regla WAF; un desafío Turnstile señala la ejecución JavaScript; un 429 señala el límite de peticiones.
- Leer el código HTTP y el cuerpo de la respuesta
- Detectar el código de Cloudflare (1020, 1015…)
- Distinguir regla WAF, desafío JavaScript y límite de peticiones
El enfoque de ScraperFlow ante Cloudflare
ScraperFlow ejecuta un navegador headless realista, ejecuta el JavaScript y espera el renderizado: los desafíos Turnstile y « checking your browser » se desarrollan como para un visitante.
Para los bloqueos por regla o por IP, adaptar el ritmo y repartir la carga reduce el riesgo. No prometemos superar todas las configuraciones: algunas reglas WAF buscan deliberadamente excluir la automatización.
Buenas prácticas y límites
Automatiza con moderación: respeta el robots.txt y las condiciones de uso, limita la frecuencia y extrae solo lo que necesitas. El acceso masivo es el primer desencadenante de bloqueo.
Ten en cuenta que las defensas evolucionan: lo que funciona hoy puede cambiar. Un acceso estable se apoya en un navegador realista, un ritmo controlado y una vigilancia continua.
- Respetar robots.txt y condiciones de uso
- Limitar la frecuencia y el volumen
- Vigilar y adaptarse a la evolución
Preguntas frecuentes
¿Qué es el error 1020 de Cloudflare?
Es un error que devuelve el cortafuegos de aplicación (WAF) de Cloudflare cuando una regla bloquea la petición: el contenido nunca se sirve. Indica un rechazo a nivel de regla (patrón de URL, User-Agent, IP, país) y no un problema de renderizado.
¿Turnstile es un CAPTCHA?
Turnstile es la alternativa de Cloudflare al CAPTCHA: un desafío, a menudo invisible, que se ejecuta en la página y produce un token. Busca verificar que hay un humano sin imponer sistemáticamente una cuadrícula de imágenes.
¿Por qué Cloudflare bloquea mi script de Python?
Un script que usa una biblioteca HTTP mínima tiene una huella (TLS, cabeceras) que difiere de un navegador y no ejecuta JavaScript: falla los desafíos y puede activar una regla WAF. Un navegador headless realista supera estos pasos en muchos sitios.
¿ScraperFlow supera siempre Cloudflare?
No. ScraperFlow ejecuta JavaScript y presenta una huella realista, lo que supera muchas protecciones, pero algunas reglas WAF buscan explícitamente excluir la automatización. Los resultados varían según la configuración del sitio.