Cloudflare Bot Management : bloquer les bots sans ralentir vos visiteurs
Cloudflare Bot Management n'est pas un simple firewall de règles : c'est un système de scoring en temps réel qui attribue à chaque visite une probabilité d'être un bot. Un score de 1 signifie "presque certainement un bot", 99 "presque certainement un humain". Ce score ouvre un contrôle granulaire que les règles IP classiques ne permettent pas. Mais il existe plusieurs niveaux de cette fonctionnalité selon les plans Cloudflare, et les confondre mène à des décisions de configuration erronées. Voici ce qu'on utilise chez nos clients, ce que ça fait concrètement, et ses limites réelles.
Définition en une phrase
Cloudflare Bot Management est un service qui analyse chaque requête HTTP à l'aide de signaux comportementaux, d'empreintes TLS/HTTP et de machine learning pour lui attribuer un score de bot, permettant de bloquer, challenger ou autoriser granulaiement le trafic automatisé.
En clair, pour les non-initiés. Votre site reçoit du trafic humain et du trafic robot. Certains robots sont utiles (Google, Bing). D'autres volent votre contenu, testent vos mots de passe en masse, ou simulent des achats pour vider votre stock. Le Bot Management de Cloudflare lit des dizaines de signaux sur chaque visite (comportement de navigation, signature du navigateur, réputation de l'IP, patterns de requêtes) et donne à chaque connexion un score. Vous décidez ensuite ce que vous faites des connexions au-dessous d'un certain score.
Pourquoi c'est important pour votre site
Les bots représentent une part croissante du trafic web. Dans nos analyses de logs clients sur les 7 derniers jours (périmètre PK.BOT), on trouve régulièrement que 40 à 60 % du trafic brut est non-humain. La composition est variable : crawlers SEO légitimes, scrapers de prix sur e-commerce, bots IA qui aspirent le contenu, outils de credential stuffing qui testent des listes de couples identifiants/mots de passe volés.
Les conséquences sans protection :
- Scraping de contenu : vos fiches produit, vos articles, vos tarifs sont aspirés et republies par des concurrents ou des agrégateurs. Depuis 2024, les bots IA (GPTBot, ClaudeBot, PerplexityBot) s'y ajoutent massivement.
- Credential stuffing : des milliers de tentatives de connexion par heure sur votre
/wp-login.phpou votre checkout Stripe, avec des identifiants issus de fuites de données. Chaque succès est un compte client compromis. - Card testing : sur les e-commerces, des bots testent des numéros de carte volés en faisant de petites transactions. Chaque test raté vous coûte des frais Stripe, chaque succès compromet votre compte marchand.
- Consommation de ressources : un scraper agressif peut consommer autant de ressources serveur que des milliers de visiteurs humains, et dégrader les performances pour vos vrais clients.
Comment ça fonctionne, concrètement
Le score de bot
Cloudflare analyse plusieurs couches pour calculer le score :
- Signaux comportementaux : séquence et timing des requêtes, patterns de navigation (un bot ne clique pas comme un humain).
- Empreinte TLS : le client TLS d'un vrai Chrome est différent de celui d'une librairie Python Requests ou Curl, même si le User-Agent est falsifié.
- Empreinte HTTP/2 : les priorités de frames HTTP/2 varient selon les implémentations. Un vrai navigateur produit un fingerprint différent d'un scraper.
- Réputation IP et ASN : les datacenters AWS, DigitalOcean, Hetzner hébergent une grande partie des bots. Les IPs résidentielles sont moins suspectes a priori.
- Machine learning : modèles entraînés sur le trafic global Cloudflare (des milliards de requêtes par jour).
Le score de bot s'utilise ensuite dans des règles WAF ou Firewall Rules :
# Bloquer les requêtes avec un score de bot inférieur à 10
(cf.bot_management.score lt 10)
Action : Block
# JS Challenge pour les scores entre 10 et 30
(cf.bot_management.score lt 30)
Action : JS Challenge
# Challenge spécifique sur le checkout pour les scores < 50
(cf.bot_management.score lt 50) and (http.request.uri.path contains "/checkout")
Action : Managed Challenge
Niveaux de Bot Management selon les plans Cloudflare
La fonctionnalité "Bot Management" au sens complet (score de 1 à 99, machine learning, empreintes TLS) est disponible dans les plans Enterprise [à vérifier par l'équipe : confirmer si disponible en Business ou seulement Enterprise au moment du déploiement, Cloudflare ajuste régulièrement l'offre]. Les plans Pro et Business ont accès à des protections bot simplifiées via "Bot Fight Mode" et "Super Bot Fight Mode", qui ne donnent pas accès au score granulaire mais bloquent une grande partie des bots connus.
Pour nos clients PK.BOT, nous combinons les outils disponibles selon le plan du client :
- Plan Free : Bot Fight Mode activé + règles custom sur les endpoints sensibles par User-Agent et rate limiting.
- Plans Pro / Business : Super Bot Fight Mode + règles WAF custom + rate limiting avancé. La protection est nettement meilleure sans forcément monter en Enterprise.
- Enterprise : score de bot complet, pages de challenge personnalisées, analytics détaillées.
Comment Secushot configure le Bot Management en intervention
Dans notre pack PK.BOT Blocage bots et scraping IA, voici la séquence standard d'intervention :
1. Analyse des logs des 7 derniers jours
On commence par lire les logs d'accès bruts (Apache, Nginx, ou depuis le dashboard Cloudflare Analytics). On identifie :
- Les top User-Agents suspects (scrapers connus, librairies Python/Go/Rust typiques des bots).
- Les ASN (numéros de systèmes autonomes) concentrant le trafic anormal (AWS, Cloudflare Workers abusifs, datacenters offshore).
- Les patterns d'URL (scans de fichiers sensibles, tentatives de login répétées, crawl de catalogue entier en quelques minutes).
2. Activation Bot Fight Mode / Super Bot Fight Mode
Selon le plan Cloudflare du client, on active le niveau de protection bot disponible dans Security > Bots.
3. Règles custom pour les bots IA
# Bloquer GPTBot et autres crawlers IA connus
(http.user_agent contains "GPTBot") or
(http.user_agent contains "ClaudeBot") or
(http.user_agent contains "PerplexityBot") or
(http.user_agent contains "CCBot") or
(http.user_agent contains "anthropic-ai") or
(http.user_agent contains "cohere-ai")
Action : Block
Note : les User-Agents peuvent être falsifiés. Un bot déterminé peut contourner ce type de règle. C'est pourquoi on combine cette approche avec le rate limiting et, quand le plan le permet, le score de bot.
4. Rate limiting sur les endpoints sensibles
# Rate limiting sur /wp-login.php : 5 requêtes par minute par IP
Path : /wp-login.php
Threshold : 5 req/min
Action : Block pendant 10 minutes
# Rate limiting sur /checkout : 10 requêtes par 30 secondes
Path contains : /checkout
Threshold : 10 req/30s
Action : Managed Challenge
5. JS Challenge ou Managed Challenge sur les zones d'inscription
Un vrai navigateur réussit un JS Challenge en arrière-plan sans friction visible pour l'utilisateur. Un bot sans moteur JavaScript complet échoue. On pose ces challenges sur les formulaires d'inscription, les reset de mot de passe, et les zones d'achat.
6. Rapport J+7
On livre un rapport chiffré 7 jours après déploiement avec les volumes de requêtes bloquées par catégorie.
Les erreurs qu'on rencontre le plus souvent
1. Confondre "Bot Fight Mode" et "Bot Management" complet
Le Bot Fight Mode (Free) et le Super Bot Fight Mode (Pro) sont des modes binaires : on bloque les bots connus ou on ne les bloque pas. Le "Bot Management" complet avec score de 1 à 99 est une fonctionnalité distincte, disponible sur les plans supérieurs. On voit des configurations où l'opérateur croit avoir le score de bot alors qu'il a juste coché "Bot Fight Mode" et ne dispose pas de la variable cf.bot_management.score dans ses règles.
2. Bloquer les bots légitimes (Google, Bing, Ahrefs)
Une règle trop agressive qui bloque tous les "bots" finit par désindexer le site de Google. Googlebot et Bingbot doivent être explicitement whitelistés. Cloudflare les identifie et les exclut des protections bot dans les réglages standard, mais des règles custom mal calibrées peuvent les capturer. On vérifie toujours que Googlebot passe après déploiement.
3. Rate limiting sans distinction entre les méthodes HTTP
Bloquer après 5 requêtes sur /wp-login.php sans distinguer GET et POST peut bloquer un administrateur qui navigue sur la page (GET) avant de soumettre (POST). On pose généralement le rate limiting sur les POST uniquement pour les endpoints de connexion.
4. Aucune règle sur les sous-domaines
Un bot qui n'arrive pas à scraper le domaine principal se rabat souvent sur les sous-domaines (API, CDN, staging). On étend les règles bot aux sous-domaines exposés dans la même zone Cloudflare.
Questions fréquentes
Cloudflare Bot Management peut-il bloquer tous les bots ? Non. Les bots qui utilisent des proxies résidentiels rotatifs, des navigateurs headless complets (Playwright, Puppeteer) avec empreintes réalistes, ou des fermes de clics humains sont très difficiles à distinguer du trafic légitime. Bot Management réduit massivement le bruit de fond des bots basiques et intermédiaires, mais n'offre pas une protection à 100 % contre des acteurs déterminés avec des ressources importantes.
Le Bot Management ralentit-il mon site ? Non pour les visiteurs humains : l'analyse du score de bot se fait au niveau du réseau Cloudflare, avant que la requête atteigne votre serveur. Pour les bots qui reçoivent un JS Challenge, le délai est leur problème, pas celui de vos visiteurs.
robots.txt suffit-il à bloquer les bots IA ?
Non. robots.txt est une convention que les bots bien intentionnés respectent. GPTBot d'OpenAI et d'autres crawlers IA déclarent respecter robots.txt, mais c'est une déclaration volontaire, pas une contrainte technique. Un bot malveillant ignore robots.txt entièrement. Les règles Cloudflare bloquent la connexion au niveau réseau.
Le blocage des bots IA affecte-t-il le référencement Google ? Non si Googlebot est correctement whitelisté. Googlebot et les crawlers de moteurs de recherche légitimes ne sont pas des bots IA au sens du scraping de contenu. On peut bloquer GPTBot et laisser Googlebot passer sans impact SEO.
PK.BOT inclut-il un abonnement Cloudflare Pro ? Non. Nous configurons les protections disponibles selon le plan que vous avez. Si le plan Pro est nécessaire pour votre profil de risque, son coût est refacturé séparément (il ne fait pas partie du forfait PK.BOT). Nous vous le disons avant le démarrage.
Comment savoir si des bots aspirent vraiment mon contenu ?
Deux indicateurs dans vos logs : des crawls complets de votre sitemap en quelques minutes, ou des User-Agents comme GPTBot, ClaudeBot, PerplexityBot, CCBot dans les logs Cloudflare ou serveur. On peut auditer vos logs lors d'un PK.AUD ou directement dans le cadre d'un PK.BOT.
Pour aller plus loin
- Connexe : Cloudflare WAF, HSTS, CSP (Content Security Policy).
- Protocoles concernés : le Bot Management est le coeur du pack Blocage bots et scraping IA PK.BOT (890 € TTC, livré en 48 h). Il est aussi inclus dans le scope du pack Sérénité Cloudflare PK.CFE et dans le durcissement sécurité P.03.
Des bots aspirent votre contenu ou testent vos logins en masse ? Notre pack Blocage bots et scraping IA (PK.BOT, 890 € TTC, livré en 48 h) analyse vos logs, pose les règles Cloudflare adaptées et vous livre un rapport chiffré des requêtes bloquées à J+7. Briefer le pack PK.BOT