Cómo evitar Cloudflare en 2023

Dado que aproximadamente el 40 % de los sitios web utilizan la red de distribución de contenido (CDN) de Cloudflares , eludir el sistema de protección antibots de Cloudflare se ha convertido en un gran requisito para los desarrolladores que buscan raspar algunos de los sitios web más populares de Internet.

Afortunadamente para nosotros, es posible eludir la protección anti-bot de Cloudflares. Sin embargo, no es una tarea fácil.

Hay una serie de enfoques que puede tomar para eludir Cloudflare, todos con sus propias ventajas y desventajas.

Van desde lo fácil, como el uso de herramientas listas para usar, hasta lo extremadamente complejo, como la ingeniería inversa completa de cómo Cloudflare detecta y bloquea los raspadores.

Entonces, en esta guía, repasaremos cada una de esas opciones para que pueda elegir la que mejor se adapte a sus necesidades.


Cómo omitir Cloudflare - Opción n.º 1: enviar solicitudes al servidor de origen

Opción #1: enviar solicitudes al servidor

No siempre es posible, pero una de las formas más fáciles de eludir Cloudflare es enviar la solicitud directamente a la dirección IP de los servidores de origen del sitio web en lugar de a la red CDN de Cloudflare.

Aquí, en lugar de tener que engañar a Cloudflare para que piense que sus solicitudes son de un usuario real, omite Cloudflare por completo al encontrar la dirección IP del servidor de origen que aloja el sitio web y enviar sus solicitudes a ese lugar.

¡Evitando completamente Cloudflare y todas sus protecciones!

Cómo omitir Cloudflare: a través del servidor de origen

Cloudflare es un sofisticado sistema de protección contra bots, pero lo configuran humanos que:

  1. Puede que no entienda por completo Cloudflare,

  2. Podría tomar atajos, o

  3. Comete errores al configurar su sitio web en Cloudflare.

Debido a esto, a veces con un poco de husmeando puedes encontrar la dirección IP del servidor que aloja la versión maestra del sitio web.

Una vez que encuentre esta dirección IP, puede configurar sus raspadores para enviar las solicitudes a este servidor en lugar de a los servidores de Cloudflares que tienen la protección anti-bot activa.

Por ejemplo, la dirección IP de origen de PetsAtHome.com , un sitio protegido de Cloudflare, es de acceso público:


Origin IP Address --> 'http://88.211.26.45/'

ACCESO AL SITIO WEB

A veces, acceder al sitio web a través de la dirección IP de origen insertándola en la barra de direcciones de su navegador no funcionará, ya que el servidor puede estar esperando un HOSTencabezado HTTP. Cuando este sea el caso, puede consultar el servidor de origen con una herramienta como curl o Postman que le permite establecer HOSTencabezados o agregar una asignación estática a su archivo de hosts.


Encontrar la dirección IP del servidor

Hay varias formas de encontrar la dirección IP de origen de un servidor de sitios web. Estos son los 3 mejores métodos:

Método 1: Certificados

Si el sitio web de destino usa certificados SSL (la mayoría de los sitios lo usan), esos certificados SSL se registran en la base de datos de Censys .

Aunque los sitios web han implementado su sitio web en Cloudflare CDN, a veces sus certificados SSL actuales o antiguos se registran en el servidor original.

Puede buscar el sitio web en la base de datos de Censys y ver si alguno de estos servidores aloja el sitio web de origen.

Método 2: registros DNS de otros servicios

A veces, otros subdominios, servidores de intercambio de correo (MX), servicios FTP/SCP o nombres de host se alojan en el mismo servidor que el sitio web principal, pero no han sido protegidos por la red de Cloudflare.

Aquí puede verificar los registros DNS para otros subdominios o registros DNS A, AAAA, CNAME y MX que liberan la dirección IP del servidor principal utilizando la base de datos Censys o Shodan .

Siempre que el sitio web no utilice un proveedor de correo electrónico de terceros, un truco es enviar un correo electrónico a una dirección de correo electrónico inexistente en su sitio web de destino y, suponiendo que la entrega falle, debería recibir una notificación fakeemail@targetwebsite.comdel servidor de correo electrónico que contendrá la dirección IP.

Método 3: Registros

El historial de DNS de cada servidor está disponible en Internet, por lo que a veces sucede que el sitio web todavía está alojado en el mismo servidor que antes de que lo implementaran en Cloudflare CDN. Como resultado, puedes usar una herramienta como CrimeFlare para encontrarlo.

CrimeFlare mantiene una base de datos de servidores de origen probable para sitios web alojados en Cloudflare, derivada de registros DNS actuales y antiguos.

Herramientas para ayudar

Las siguientes son algunas de las mejores herramientas disponibles para ayudarlo a encontrar la dirección IP original del servidor:

A veces, incluso si encuentra la dirección IP real del servidor del sitio web, no es posible acceder a ella, por ejemplo, cuando los administradores del sitio web limitan correctamente el servidor para que solo responda a los rangos de IP de Cloudflare, redirige cualquier solicitud a Cloudflare CDN o si Origin CA Se utilizan certificados .

SERVIDORES DE ENSAYO Y DESARROLLO

Si encuentra lo que parece ser un servidor de origen, de hecho puede ser un servidor de desarrollo o de prueba para el sitio web real. Aunque nunca puede estar 100% seguro de que el servidor que encontró es el servidor de origen, si puede navegar, los datos se ven igual que el sitio protegido de Cloudflare, puede registrar una cuenta en la "versión de origen" e iniciar sesión en el servidor real. sitio web con él, entonces debería estar bien tratar este sitio web como el sitio web real.

Para obtener más información sobre cómo encontrar las direcciones IP del servidor de origen, consulte estas guías:

Si después de todo esto no encuentras la dirección IP del servidor de origen, no te preocupes. Hay muchas otras formas de eludir la protección de Cloudflare.


Cómo omitir Cloudflare - Opción n. ° 2: raspar la versión de caché de Google

Opción #2: raspar la versión

Dependiendo de cuán actualizados deban ser sus datos, otra opción es extraer los datos de Google Cache en lugar del sitio web real.

Cuando Google rastrea la web para indexar páginas web, crea un caché de los datos que encuentra. La mayoría de los sitios web protegidos por Cloudflare permiten que Google rastree sus sitios web para que puedas raspar este caché en su lugar.

Raspar el caché de Google puede ser más fácil que raspar un sitio web protegido por Cloudflare, pero solo es una opción viable si los datos del sitio web que desea raspar no cambian con tanta frecuencia.

Para raspar el caché de Google, simplemente agréguelo https://webcache.googleusercontent.com/search?q=cache:al inicio de la URL que le gustaría raspar.

Por ejemplo, si desea raspar https://www.petsathome.com/shop/en/pets/dog, la URL para raspar la versión de caché de Google sería:


'https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog'

SITIOS WEB NO ALMACENADOS EN CACHÉ

Algunos sitios web (como LinkedIn) le dicen a Google que no almacene en caché sus páginas web o que la frecuencia de rastreo de Google es demasiado baja, lo que significa que es posible que algunas páginas aún no estén almacenadas en caché. Así que este método no funciona con todos los sitios web.


Cómo omitir Cloudflare - Opción n.º 3: Solucionador de Cloudflare

Opción n.º 3: solucionadores

De acuerdo, si no puede encontrar el servidor de origen y usar Google Cache no es una opción para usted, entonces debemos omitir Cloudflare directamente.

Una forma de eludir Cloudflare es usar uno de varios solucionadores de Cloudflare que resuelven los desafíos de Cloudflare:

Cómo omitir Cloudflare - Página de desafío

Se han desarrollado varios solucionadores de Cloudflare:

Sin embargo, a menudo quedan obsoletos y dejan de funcionar debido a las actualizaciones de Cloudflare.

Actualmente, el solucionador de Cloudflare con mejor rendimiento es FlareSolverr .

FlareSolverr es un servidor proxy que puede usar para evitar la protección de Cloudflare y DDoS-GUARD.

Cuando se ejecuta, FlareSolverr inicia un servidor proxy que reenvía sus solicitudes al sitio web protegido de Cloudflare mediante el uso de titiritero y el complemento sigiloso , y espera hasta que se resuelve el desafío de Cloudflare (o se agota el tiempo) antes de devolver la respuesta y las cookies a su raspador.

Desde aquí, puede usar esas cookies para evitar Cloudflare usando sus clientes HTTP normales.

La ventaja de este enfoque sobre el uso de un navegador headless fortificado para cada solicitud es que solo necesita usar FlareSolverr para recuperar las cookies de Cloudflare válidas y luego puede continuar raspando con clientes HTTP que consumen muchos menos recursos (como solicitudes de Python, HTTPX, Node Axios, etc. .).

Puede instalar FlareSolverr en un servidor usando Docker (navegador Firefox ya incluido), por lo que es bastante simple configurarlo.

PROBLEMAS DE MEMORIA

Como los navegadores sin cabeza pueden consumir mucha memoria y cada solicitud a FlareSolverr abre una nueva ventana del navegador, FlareSolverr puede bloquear su servidor si le envía muchas solicitudes y su máquina no tiene suficiente RAM. Por lo tanto, debe limitar la cantidad de solicitudes que envía y/o implementarlas en un servidor más grande.

A veces, CloudFlare no solo proporciona cálculos matemáticos y pruebas de navegador Javascript para resolver, sino que a veces requiere que el usuario resuelva un CAPTCHA. Aunque FlareSolverr admite la resolución de CAPTCHA a través de solucionadores de CAPTCHA de terceros, actualmente, ninguna de las soluciones de resolución de CAPTCHA automatizadas funciona ya que Cloudflare usa hCAPTCHA.


Cómo omitir Cloudflare - Opción n.º 4: Scrape con navegadores sin cabeza fortificados

Opción #4: Raspe con navegadores

La otra opción es hacer todo el trabajo de raspado con un navegador sin interfaz que ha sido reforzado para parecerse al navegador de un usuario real.

Los navegadores sin cabeza Vanilla filtran su identidad en sus huellas dactilares JS que los sistemas anti-bot pueden detectar fácilmente. Sin embargo, los desarrolladores han lanzado una serie de navegadores sin cabeza fortificados que corrigen las filtraciones más importantes:

Por ejemplo, una fuga comúnmente conocida presente en navegadores sin cabeza como Puppeteer, Playwright y Selenium es el valor del archivo navigator.webdriver. En los navegadores normales, esto se establece en false, sin embargo, en los navegadores headless no fortificados se establece en true.

Hay más de 200 filtraciones conocidas de navegadores sin cabeza que estos complementos sigilosos intentan reparar. Sin embargo, se cree que es mucho más alto ya que los navegadores cambian constantemente y está en el interés de los desarrolladores de navegadores y las compañías anti-bots no revelar todas las filtraciones que conocen.

Los complementos ocultos del navegador sin cabeza corrigen la gran mayoría de estas fugas del navegador y, a menudo, pueden pasar por alto muchos servicios anti-bot como Cloudflare , PerimeterX , Incapsula , DataDome , según el nivel de seguridad con el que se hayan implementado en el sitio web.

Sin embargo, no los consiguen todos. Para hacer que su navegador sin cabeza realmente parezca un navegador real, tendrá que hacerlo usted mismo.

Otra forma de hacer que sus navegadores sin cabeza sean más indetectables es emparejarlos con proxies residenciales o móviles de alta calidad. Estos proxies suelen tener puntajes de reputación de direcciones IP más altos que los proxies de centros de datos y los servicios anti-bot son más reacios a bloquearlos, lo que los hace más confiables.

La desventaja de emparejar navegadores sin interfaz con proxies residenciales/móviles es que los costos pueden acumularse rápidamente.

Como los proxies residenciales y móviles generalmente se cobran por GB de ancho de banda utilizado y una página renderizada con un navegador sin interfaz puede consumir 2 MB en promedio (frente a 250 kb sin un navegador sin interfaz). Lo que significa que puede volverse muy costoso a medida que escala.

El siguiente es un ejemplo del uso de proxies residenciales de BrightData con un navegador sin interfaz asumiendo 2 MB por página.

Paginas

Banda ancha

Costo por GB

Coste total

25,000

50GB

$13

$625

100,000

200GB

$10

$2000

1 millón

2TB

$8

$16,000

ENCUENTRE PROXIES RESIDENCIALES Y MÓVILES BARATOS

Si desea comparar proveedores de proxy, puede utilizar esta herramienta gratuita de comparación de proxy , que puede comparar planes de proxy residenciales y planes de proxy móvil .


Opción n.º 5: Proxy inteligente con derivación

Las desventajas de usar Cloudflare Solvers de código abierto y navegadores sin cabeza prefortificados es que las empresas anti-bots como Cloudflare pueden ver cómo eluden sus sistemas de protección anti-bots y corrigen fácilmente los problemas que explotan.

Como resultado, la mayoría de las omisiones de Cloudflare de código abierto solo tienen un par de meses de vida útil antes de que dejen de funcionar.

La alternativa al uso de desvíos de Cloudflare de código abierto es usar proxies inteligentes que desarrollen y mantengan sus propios desvíos privados de Cloudflare.

Por lo general, estos son más confiables, ya que es más difícil para Cloudflare desarrollar parches para ellos, y los desarrollan empresas proxy que están motivadas económicamente para mantenerse un paso por delante de Cloudflare y corregir sus omisiones en el momento en que dejan de funcionar.

La mayoría de los proveedores de proxy inteligentes ( ScraperAPI , Scrapingbee , Oxylabs , Smartproxy ) tienen algún tipo de omisión de Cloudflare que funciona en diversos grados y varía en costo.

Sin embargo, una de las mejores opciones es usar ScrapeOps Proxy Aggregator , ya que integra más de 20 proveedores de proxy en la misma API de proxy y encuentra el proveedor de proxy mejor o más barato para sus dominios de destino.

Puede activar el desvío de Cloudflare de ScrapeOps simplemente agregando bypass=cloudflarea su solicitud de API, y el proxy de ScrapeOps utilizará el mejor y más barato desvío de Cloudflare disponible para su dominio de destino.


import requests

response = requests.get(
  url='https://proxy.scrapeops.io/v1/',
  params={
      'api_key': 'YOUR_API_KEY',
      'url': 'http://example.com/', ## Cloudflare protected website 
      'bypass': 'cloudflare',
  },
)

print('Body: ', response.content)

Puede obtener una clave de API de ScrapeOps con 1000 créditos de API gratuitos registrándose aquí .

La ventaja de adoptar este enfoque es que puede usar su cliente HTTP normal y no tiene que preocuparse por:

  • Encontrar servidores de origen

  • Fortalecimiento de navegadores sin cabeza

  • Administrar numerosas instancias de navegador sin cabeza y lidiar con problemas de memoria

  • Ingeniería inversa de la protección anti-bot de Cloudflare

Como todo esto se gestiona dentro del agregador de proxy de ScrapeOps .


Opción n.º 6: ingeniería inversa Cloudflare Anti-Bot Protection

La forma final y más compleja de eludir la protección anti-bot de Cloudflare es aplicar ingeniería inversa al sistema de protección anti-bot de Cloudflare y desarrollar una omisión que supere todas las comprobaciones anti-bot de Cloudflare sin la necesidad de usar una instancia de navegador headless completamente fortificada.

Este enfoque funciona (y es lo que hacen muchas soluciones de proxy inteligente), sin embargo, no es para los débiles de corazón.

Ventajas: la ventaja de este enfoque es que, si realiza scraping a gran escala, no desea ejecutar cientos (si no miles) de costosas instancias de navegador sin interfaz completa. En su lugar, puede desarrollar el desvío de Cloudflare más eficiente en recursos posible. Uno que está diseñado únicamente para pasar las pruebas de huella digital Cloudflare JS, TLS e IP.

Desventajas: las desventajas de este enfoque es que tendrá que profundizar en un sistema anti-bot que se ha hecho deliberadamente difícil de entender desde el exterior, y probar diferentes técnicas para engañar a su sistema de verificación. Luego mantenga este sistema mientras Cloudflare continúa desarrollando su protección anti-bot.

Es posible hacer esto, pero solo recomendaría a alguien que adopte este enfoque a menos que sea:

  1. Realmente interesado en el desafío intelectual de la ingeniería inversa de un sofisticado sistema anti-bot, o

  2. Los beneficios económicos de tener un bypass de Cloudflare más rentable garantizan los días o semanas de tiempo de ingeniería que tendrá que dedicar a construirlo y mantenerlo.

Para las empresas que raspan volúmenes muy grandes (+500 millones de páginas por mes) o soluciones de proxy inteligente cuyas empresas dependen de formas rentables de acceder a los sitios, entonces crear su propio desvío de Cloudflare personalizado podría ser una buena opción.

Para la mayoría de los demás desarrolladores, probablemente sea mejor usar uno de los otros cinco métodos de omisión de Cloudflare.

Para aquellos de ustedes que quieran dar el paso, lo siguiente es un resumen de cómo funciona el Firewall de aplicaciones web (WAF) de Cloudflare y cómo pueden evitarlo.


Descripción del administrador

Cuando decimos que queremos omitir Cloudflare, lo que realmente queremos decir es que queremos omitir su Bot Manager , que es parte de su Web Application Firewall (WAF) .

Un sistema diseñado para mitigar los ataques de bots maliciosos sin afectar a los usuarios reales.

El sistema de detección de bots de Cloudflares se puede dividir en dos categorías:

  • Técnicas de detección de back-end: estas son técnicas de huellas dactilares de bot que se realizan en el servidor de back-end.

  • Técnicas de detección del lado del cliente: estas son técnicas de huellas dactilares de bot que se realizan en el navegador de los usuarios (lado del cliente).

Para eludir Cloudflare, debe aprobar ambos conjuntos de pruebas de verificación.


Las siguientes son las técnicas conocidas de toma de huellas dactilares de bots backend que Cloudflare realiza en el lado del servidor y cómo pasarlas:

#1: calidad

Una de las pruebas más básicas que realiza Cloudflare es calcular un puntaje de reputación de dirección IP para las direcciones IP que usa para enviar solicitudes. Teniendo en cuenta factores como si se sabe que forma parte de alguna red de bot conocida, su ubicación, ISP, historial de reputación.

Para obtener los puntajes más altos de reputación de direcciones IP, debe usar proxies residenciales/móviles sobre proxies de centros de datos o cualquier proxie asociado con VPN. Sin embargo, los proxies del centro de datos aún pueden funcionar si son de alta calidad.

#2: Encabezados

Cloudflare también analiza los encabezados HTTP que envía con sus solicitudes y los compara con una base de datos de patrones de encabezados de navegador conocidos.

La mayoría de los clientes HTTP envían agentes de usuario y otros encabezados que los identifican claramente de forma predeterminada, por lo que debe anular estos encabezados y usar un conjunto completo de encabezados de navegador que coincidan con el tipo de navegador en el que desea aparecer. En esta guía de optimización de encabezados , detallamos cómo hacerlo y puede usar nuestra API de encabezados de navegador falsos para generar una lista de encabezados de navegador falsos.

#3: Huellas dactilares

El sistema de detección de huellas dactilares más complejo que utiliza Cloudflare es la huella dactilar TLS y HTTP/2. Cada cliente de solicitud HTTP genera una huella digital estática TLS y HTTP/2 que Cloudflare puede usar para determinar si la solicitud proviene de un usuario real o de un bot.

Las diferentes versiones de los navegadores y los clientes HTTP tienden a poseer diferentes huellas digitales TLS y HTTP/2 que Cloudflare puede comparar con los encabezados del navegador que envía para asegurarse de que realmente es usted quien dice estar en los encabezados del navegador que configuró.

El problema es que falsificar huellas digitales TLS y HTTP/2 es mucho más difícil que simplemente agregar encabezados de navegador falsos a su solicitud. Primero debe capturar y analizar los paquetes de los navegadores que desea suplantar, luego modificar las huellas digitales TLS y HTTP/2 utilizadas para realizar la solicitud.

Sin embargo, muchos clientes HTTP, como las solicitudes de Python, no le brindan la posibilidad de modificar estas huellas digitales TLS y HTTP/2. Deberá usar lenguajes de programación y un cliente HTTP como Golang HTTP o Got , que le brinda suficiente control de bajo nivel de la solicitud para que pueda falsificar las huellas digitales TLS y HTTP/2.

Bibliotecas como CycleTLS , Got Scraping . utls lo ayuda a falsificar huellas dactilares TLS/JA3 en GO y Javascript.

Este es un tema complicado, por lo que le sugiero que se sumerja en cómo funcionan las huellas dactilares TLS y HTTP/2. Aquí hay algunos recursos para ayudarlo:

IMPORTANTE: COINCIDENCIA DE ENCABEZADOS DE NAVEGADOR, TLS Y HUELLAS DACTILARES HTTP/2

La forma en que Cloudflare detecta sus raspadores con estos métodos de huellas dactilares es cuando realiza una solicitud utilizando agentes de usuario y encabezados de navegador que dicen que es un navegador Chrome, sin embargo, sus huellas dactilares TLS y HTTP/2 dicen que está usando el cliente HTTP de solicitudes de Python.

Entonces, para engañar a las pruebas de huellas dactilares de Cloudflares, debe asegurarse de que los encabezados del navegador, las huellas dactilares TLS y HTTP/2 sean consistentes y le indiquen a Cloudflare que la solicitud proviene de un navegador real.

Cuando utiliza un navegador automatizado para realizar las solicitudes, todo esto se maneja por usted. Sin embargo, se vuelve bastante complicado cuando intenta realizar solicitudes utilizando un cliente HTTP normal.

Las técnicas de detección del lado del servidor de Cloudflare son su primera línea de defensa. Si falla alguna de estas pruebas, Cloudflare impugnará o bloqueará su solicitud.

Las técnicas de detección del lado del servidor asignan a su solicitud una puntuación de riesgo que Cloudflare luego usa para determinar qué desafíos mostrarle (si los hay) en el lado del cliente.

Cada sitio web individual puede establecer sus propios umbrales de riesgo de protección contra bots, para determinar quién debe ser desafiado y con qué desafíos (desafíos del lado del cliente en segundo plano o CAPTCHA). Por lo tanto, su objetivo es obtener la puntuación de riesgo más baja posible. Especialmente para los sitios web más protegidos.


De acuerdo, suponiendo que haya podido crear un sistema para pasar todas las comprobaciones anti-bot del lado del servidor de Cloudflares, ahora debe lidiar con sus pruebas de verificación del lado del cliente.

Estas pruebas de verificación del lado del cliente ocurren cuando Cloudflare le muestra su página de seguridad antes de darle acceso al sitio web. Aquí hay un ejemplo .

Cuando usted (o su raspador) visita un sitio web por primera vez, Cloudflare mostrará esta página y, en segundo plano, su navegador está resolviendo varios desafíos para demostrarle a Cloudflare que no es un robot.

Si lo marcan como bot, se le dará el error 403 Acceso denegado/prohibido .

La puntuación de riesgo que obtuvo su solicitud durante las pruebas del lado del servidor puede afectar las pruebas de verificación del lado del cliente que ejecuta. Lo más importante, si requiere que resuelva un CAPTHCA o no.

Hay tres enfoques generales para resolver los desafíos anti-bot del lado del cliente que ocurren mientras espera en esta página:

  • Use el navegador automatizado: como se mencionó anteriormente, si usa un navegador fortificado para abrir la página, se encargará de gran parte del trabajo pesado de resolver los desafíos de JavaScript de Cloudflare.

  • Emular un navegador en una caja de arena: puede emular un navegador en una caja de arena usando una biblioteca como JSDOM , que requeriría menos recursos y le daría un control más preciso sobre lo que quiere que represente.

  • Cree un algoritmo de resolución de desafíos: Cree un algoritmo que pueda pasar las comprobaciones sin un navegador. Este es el enfoque más difícil, ya que necesita comprender completamente las comprobaciones del lado del cliente de Cloudflares, desofuscar los scripts de desafío de Javascript y luego crear un algoritmo para resolverlos.

Las siguientes son las principales técnicas de huellas digitales de bots del lado del cliente que Cloudflare realiza en el navegador de los usuarios que deberá aprobar:

#1: API

Los navegadores modernos tienen cientos de API que nos permiten, como desarrolladores, diseñar aplicaciones que interactúan con el navegador de los usuarios. Desafortunadamente, cuando Cloudflare se carga en el navegador de los usuarios, también obtiene acceso a todas estas API.

Permitiéndole acceder a grandes cantidades de información sobre el entorno del navegador, que luego puede usar para detectar raspadores que mienten sobre sus verdaderas identidades. Por ejemplo, Cloudflare puede consultar:

  1. API específicas del navegador: algunas API web window.chromesolo existen en un navegador Chrome. Entonces, si los encabezados de su navegador, las huellas digitales TLS y HTTP/2 dicen que está realizando una solicitud con un navegador Chrome, pero la API window.chromeno existe cuando Cloudflare verifica el navegador, entonces es una señal clara de que está falsificando sus huellas digitales.

  2. API de navegador automatizado: los navegadores automatizados como Selenium tienen API como window.document.__selenium_unwrapped. Si Cloudflare ve que estas API existen, entonces sabe que no eres un usuario real.

  3. API de emulador de navegador Sandbox: los emuladores de navegador de espacio aislado como JSDOM , que se ejecuta en NodeJs, tiene el processobjeto que solo existe en NodeJs.

  4. API de entorno: si su agente de usuario dice que está utilizando una máquina MacOs o Windows pero el navigator.platformvalor está establecido en Linux x86_64, entonces eso hace que su solicitud parezca sospechosa.

Si está utilizando un navegador fortificado, habrá solucionado muchas de estas fugas; sin embargo, es probable que tenga que corregir más y asegurarse de que los encabezados de su navegador y las huellas dactilares TLS y HTTP/2 coincidan con los valores devueltos por las API web del navegador.

# 2: huellas dactilares

Otra técnica que usa Cloudflare para detectar raspadores es la toma de huellas dactilares de lienzo, una técnica que le permite a Cloudflare clasificar el tipo de dispositivo que se usa (combinación de navegador, sistema operativo y hardware de gráficos del sistema).

Cloudflare utiliza las huellas dactilares de Picasso de Google. para generar huellas dactilares de lienzo.

La toma de huellas dactilares de lienzo es una de las técnicas de toma de huellas dactilares de navegador más comunes que utiliza la API HTML5 para dibujar gráficos y animaciones de una página con Javascript, que luego se puede usar para producir una huella digital del dispositivo.

ECHA UN VISTAZO A TU HUELLA DACTILAR DE CANVAS

Puede usar la demostración en vivo de BrowserLeaks para ver la huella digital del lienzo de su navegador.

Cloudflare mantiene un gran conjunto de datos de pares de agentes de usuario y huellas dactilares legítimas. Entonces, cuando una solicitud proviene de un usuario que dice ser un navegador Firefox que se ejecuta en una máquina con Windows en sus encabezados, pero su huella dactilar del lienzo dice que en realidad es un navegador Chrome que se ejecuta en una máquina con Linux, entonces es una señal para que Cloudflare cuestionar o bloquear la solicitud.

#3: Seguimiento

Si necesita navegar o interactuar con una página web para obtener los datos que necesita, tendrá que lidiar con el seguimiento de eventos de Cloudflares.

Cloudflare agrega detectores de eventos a las páginas web para que pueda monitorear las acciones del usuario, como los movimientos del mouse, los clics y las pulsaciones de teclas. Si tiene un raspador que necesita interactuar con una página, pero el mouse nunca se mueve, es una señal clara para Cloudflare de que la solicitud proviene de un navegador automatizado y no de un usuario real.

#4: CAPTCHA

Probablemente, el desafío anti-bot de Cloudflare más difícil al que se enfrentará cuando raspe un sitio web protegido por Cloudflare es resolver sus desafíos de CAPTCHA.

Cloudflare solo muestra los desafíos de CAPTCHA a los usuarios cuando:

  1. Cloudflare otorga a la solicitud una puntuación de alto riesgo.

  2. El sitio web ha configurado su seguridad para mostrar un desafío CAPTCHA a veces o todo el tiempo .

Afortunadamente, la mayoría de los sitios web prefieren no mostrar los desafíos de CAPTCHA, ya que se sabe que perjudican la experiencia del usuario.

En el raro caso de que un administrador de sitio web haya configurado Cloudflare para mostrar un CAPTCHA en cada solicitud, deberá usar un servicio de resolución de CAPTCHA basado en humanos para resolver su desafío de hCaptcha , ya que los solucionadores de CAPTCHA automatizados no pueden resolver los CAPTCHA de hCaptcha. Esto no es ideal, ya que puede hacer que raspar sea bastante lento y costoso.

De lo contrario, debe optimizar sus raspadores tanto como sea posible para reducir el puntaje de riesgo que les asigna Cloudflare. De esta manera, debería poder evitar tener que lidiar con ellos por completo.


Derivación de bajo nivel

En general, la ingeniería inversa y el desarrollo de un bypass de bajo nivel (que no use un navegador sin interfaz) para el sistema anti-bot de Cloudflares es extremadamente desafiante, ya que deberá:

  • Interceptar las solicitudes de red de Cloudflare cuando carga la página de la sala de espera

  • Desofuscar el código de Cloudflare

  • Descifrar los desafíos de Javascript contenidos en el código ofuscado

  • Comprender los desafíos de Javascript contenidos en el código desofuscado

  • Resuelva los desafíos de Javascript y devuelva el resultado correcto.

Aquí hay un fragmento desofuscado de algunas de las pruebas de la API del navegador que lleva a cabo Cloudflare.


function _0x15ee4f(_0x4daef8) { 
    return { 
        /* .. */ 
        wb: !(!_0x4daef8.navigator || !_0x4daef8.navigator.webdriver), 
        wp: !(!_0x4daef8.callPhantom && !_0x4daef8._phantom), 
        wn: !!_0x4daef8.__nightmare, 
        ch: !!_0x4daef8.chrome, 
        ws: !!( 
            _0x4daef8.document.__selenium_unwrapped || 
            _0x4daef8.document.__webdriver_evaluate || 
            _0x4daef8.document.__driver_evaluate 
        ), 
        wd: !(!_0x4daef8.domAutomation && !_0x4daef8.domAutomationController), 
    }; 
}

Entraremos en más detalles sobre cómo aplicar ingeniería inversa a los desafíos de Javascript de Cloudflare en otro artículo, ya que ese es un gran tema.


Más guías

Entonces, cuando se trata de eludir Cloudflare, tiene múltiples opciones. Algunos son bastante rápidos y fáciles, otros son mucho más complejos. Cada uno con sus propias compensaciones.

Si desea aprender cómo raspar algunos sitios web populares, consulte nuestras otras guías de cómo raspar :

O si desea obtener más información sobre el web scraping en general, asegúrese de consultar The Web Scraping Playbook o consulte una de nuestras guías más detalladas:

Last updated