Présentation du problème
Depuis le 1er juillet 2025, Cloudflare bloque par défaut les crawlers IA sur chaque nouveau domaine, ayant ainsi rejeté des centaines de milliards de requêtes de bots. Le problème principal n'est pas la détection des bots, mais plutôt la capacité des agents à contourner ces mécanismes de sécurité.
Fonctionnement de la détection de bots
Lorsqu'un agent tente d'accéder à un site protégé par Cloudflare, il reçoit une page de blocage avec un code 403 ou 200, mais avec un corps HTML complet. Cela peut tromper l'agent, qui interprète la page de blocage comme du contenu réel. Pour résoudre ce problème, il est nécessaire de développer un mécanisme permettant de détecter les pages de blocage et de les distinguer du contenu réel.
Implémentation de la solution
La solution proposée, appelée Fortress, est un navigateur furtif open-source capable de contourner les mécanismes de détection de bots de Cloudflare, CloudFront et PerimeterX. Fortress utilise une approche multi-étapes pour accéder aux contenus protégés, notamment en attendant patiemment les défis JavaScript, en rendant la page entière en markdown structuré et en capturant les appels API privés. Le code suivant illustre l'utilisation de Fortress pour accéder à une page protégée :
fortress.fetch_protected_page("https://www.zillow.com/homes/for_sale/San-Francisco_rb/")
Cela retourne un objet avec une propriété blocked indiquant si la page est accessible ou non, ainsi que le contenu de la page si elle est accessible.
Intégration et résultats
Les résultats des tests montrent que Fortress parvient à accéder à 5 des 8 sites testés, tandis que la version naive de l'agent n'accède à aucun des sites. L'intégration de Fortress dans un agent peut être réalisée en utilisant le serveur MCP (Message Control Protocol) de Tilion, qui permet de configurer les paramètres de connexion et d'accéder aux contenus protégés de manière sécurisée.