Guide de configuration du rate limiting Cloudflare : bloquer les attaques CC en 5 minutes, même en version gratuite

3 heures du matin. L’alerte monitoring réveille : CPU à 100 %, site inaccessible. Les logs montrent des dizaines d’IP qui martèlent les API — attaque CC.
Bloquer les IP une par une, de nouvelles arrivent aussitôt. Deux heures perdues avant de penser à Cloudflare. Rate Limiting : la version gratuite suffit ! Une règle — 20 requêtes par minute par IP, blocage 10 minutes — configurée en 5 minutes. L’attaque reste dehors.
Défendre contre le CC n’est pas si compliqué : configurez le rate limiting à l’avance. Ce guide couvre la version gratuite, les seuils, les scénarios et les pièges.
Qu’est-ce qu’une attaque CC ? Pourquoi le rate limiting la bloque-t-il
CC signifie Challenge Collapsar : simuler de nombreux utilisateurs normaux pour épuiser les ressources du serveur.
Ce n’est pas exactement un DDoS classique. Le DDoS envoie des paquets massifs, facilement repérables ; la protection DDoS Cloudflare les intercepte. Le CC envoie des requêtes HTTP normales, comme un vrai visiteur ; la protection DDoS peut passer à côté.
Un utilisateur normal : quelques pages par minute, 5 à 10 requêtes. En CC : plus de 1 000 requêtes en 30 secondes depuis une IP — anormal. Souvent des machines ou des IP proxy en masse, trafic dispersé, difficile à filtrer.
Le rate limiting cible précisément ce comportement : surveiller la fréquence par IP (session, clé API, etc.) ; au-delà du seuil, CAPTCHA ou blocage temporaire.
Lors de mon attaque, l’IP envoyait 200 à 300 req/s ; mon seuil : 20/min. Déclenchement en 1 à 2 secondes ; le reste bloqué. Les utilisateurs normaux ne touchaient pas la limite.
Donnée utile : la doc WAF d’Alibaba Cloud indique qu’une machine zombie peut dépasser 1 000 requêtes en 30 secondes ; un utilisateur normal reste sous 10/min.
L’écart est flagrant.
Vous vous demandez peut-être : et si un utilisateur légitime va vite, par exemple en rafraîchissant une API ? C’est pour cela que le seuil compte — voir les recommandations par scénario plus bas.
Version gratuite : panorama du rate limiting Cloudflare
Beaucoup pensent encore que c’est payant. Depuis octobre 2022, Cloudflare l’a ouvert à tous, Free, Pro et Business.
Avant 2022 : facturation au trafic, 5 $ par million de requêtes — j’avais évité de l’activer pour cette raison.
Aujourd’hui : annonce officielle, règles incluses sans surcoût. Free : 1 règle ; Pro et Business : plus.
Une seule règle suffit-elle ? Pour les PME, souvent oui. Placez-la sur la cible la plus exposée : login, inscription ou API critique.
Mes petits projets : 1 règle sur le login, près d’un an sans souci ; scans occasionnels bloqués.
Plusieurs interfaces sensibles ? Pro (20 $/mois, 10 règles) ou Business (200 $/mois, 15 règles). Pour un site perso ou une PME, 1 règle Free couvre l’essentiel.
Rappel : la protection DDoS de base Cloudflare est incluse sans limite de trafic. Le rate limiting cible surtout le CC discret et l’abus d’API.
Free vs payant :
- Nombre de règles : Free 1, Pro 10, Business 15
- Fonctions avancées : Bot Score, JA3, etc.
- Temps de réponse : plans payants plus réactifs sous charge
Débutants : testez en Free sur votre interface la plus critique ; upgradez si besoin.
Seuils : recommandations par scénario
Ma première config : fixer « Requests per period » — 10 ou 100 ? Trop bas, faux positifs ; trop haut, protection faible.
Après doc Cloudflare, bonnes pratiques et tests, voici des repères. À adapter à votre trafic réel.
Login / inscription (cible privilégiée)
Zone de brute force et credential stuffing : trafic utilisateur faible, pic d’attaque élevé.
Recommandation (trois niveaux) :
Cloudflare recommande trois règles :
- Niveau 1 : 4 req/min → JavaScript Challenge
- Niveau 2 : 10 req/10 min → CAPTCHA
- Niveau 3 : 20 req/heure → blocage 1 jour
En Free, simplifiez :
- Une règle : 20 req/60 s → blocage 10 min
D’après mes logs : même avec mots de passe erronés, moins de 5 tentatives/min ; les scripts en envoient des centaines. 20/min équilibre protection et UX.
Sécurité stricte :
- Mode strict : 10 req/60 s → blocage 1 heure
API (selon le métier)
API de requête simple :
- Recommandé : 30 req/10 s → JavaScript Challenge
~3 req/s — suffisant pour la plupart des frontends ; rafraîchissement rapide sans blocage immédiat.
API intensive (images, analytics) :
- Recommandé : 10 req/60 s → limitation
Consommation serveur élevée ; 10/min suffit à l’usage normal et limite l’abus.
API publique :
- Recommandé : selon facturation et capacité
Gratuit : ex. 100 req/heure ; payant : paliers par offre.
Google Cloud Armor suggère parfois 2 000 req/20 min puis limitation à 20 % — approche progressive intéressante.
Pages web (anti-scraping)
Recommandé :
- Pages courantes : 100 req/30 s → JavaScript Challenge
- Pages spéciales (recherche, téléchargement) : 50 req/60 s → CAPTCHA
Seuil élevé car navigation + assets (CSS, JS, images) = plusieurs requêtes par page. 100/30 s ne gêne pas un visiteur ; un crawler à cette cadence est bloqué.
Attention : pas de limite stricte sur la home ! J’avais serré la page d’accueil ; Google et Bing bloqués, SEO en chute. Règle supprimée, récupération.
Cas de référence
Alibaba Cloud WAF — config préventive PME :
- Plus de 1 000 requêtes en 30 s depuis une IP → blocage 10 heures
Filet de sécurité souple ; point de départ si vous hésitez.
Astuce : commencez par Managed Challenge, pas Block ; les humains passent le défi si le seuil est un peu bas. Passez à Block après validation.
Tutoriel en 5 minutes (pas à pas)
Étape 1 : page Rate Limiting
Connexion Cloudflare, choisir le domaine :
Security → WAF → Rate limiting rules
Bouton Create rule ; en Free : 0/1 rules.
Étape 2 : informations de base
Rule name : ex. Login-Rate-Limit ou API-Protection.
Étape 3 : conditions (Expression)
Protéger le login :
Field: URI Path
Operator: equals
Value: /api/login
Surveille uniquement /api/login.
Protéger toute l’API :
Field: URI Path
Operator: contains
Value: /api/
Tous les chemins /api/....
Exclure un User-Agent (ex. script de monitoring) : And
Field: User Agent
Operator: does not equal
Value: MyMonitorBot
Étape 4 : paramètres de rate limiting
Characteristics :
- IP Address : comptage par IP (recommandé contre le CC)
- Session : cookie de session (utilisateurs connectés)
- Headers : ex. clé API
Pour le login : IP Address.
Period : 10 s, 30 s, 60 s… J’utilise 60 s — 10 s risque les faux positifs ; 10 min affaiblit la protection.
Requests per period : login 20, API 30.
Duration : 1 min à 24 h. J’utilise 10 min.
Exemple login :
- Characteristics: IP Address
- Period: 60 seconds
- Requests: 20
- Duration: 10 minutes
Plus de 20 accès login/min depuis la même IP → blocage 10 min.
Étape 5 : action (Action)
Managed Challenge — recommandé :
Cloudflare distingue humain et bot ; page de vérification ou passage direct ; impact minimal si erreur.
Block :
403 ; efficace mais gênant si faux positif ; après validation.
Legacy CAPTCHA :
Code à saisir ; UX moyenne, efficace contre les bots.
JS Challenge :
JavaScript côté client ; efficace contre les crawlers, transparent pour les navigateurs.
Commencez par Managed Challenge, puis Block si besoin.
Étape 6 : Deploy
Bouton Deploy en bas — effet immédiat.
Étape 7 : vérification
for i in {1..30}; do curl https://yourdomain.com/api/login; done
20 premières OK ; à partir de la 21e : 429 ou défi.
Consultez Security → Events pour les logs d’interception.
Exemple complet
Interface /api/auth/login :
Informations :
- Rule name: Login-Rate-Limit
Conditions :
- URI Path equals
/api/auth/login
Paramètres :
- Characteristics: IP Address
- Period: 60 seconds
- Requests: 20
- Duration: 10 minutes
Action :
- Managed Challenge
Deploy — 5 minutes.
Astuces avancées et pièges courants
Piège 1 : crawlers SEO
Ne serrez pas la home ni tout le site !
Règle globale 50 req/30 s : erreurs Google Search Console en hausse ; crawlers + assets = déclenchement fréquent.
Limitez login et API ; pages de contenu souples ou sans limite.
Recommandations :
- Login, inscription, API : strict
- Contenu : souple ou sans limite
- Home : éviter les limites strictes
Anti-scraping avancé : Bot Management (payant) pour crawlers légitimes vs malveillants.
Piège 2 : contournement Cloudflare
Un ami avait configuré le rate limiting ; l’attaque passait quand même — accès direct à l’IP d’origine.
Pourquoi ?
Cloudflare est un reverse proxy. IP d’origine connue = bypass.
Solutions :
- Pare-feu : IP Cloudflare uniquement
Listes officielles IPv4/IPv6 ; ports 80 et 443.
Linux :
# N'autoriser que les IP Cloudflare
for i in `curl https://www.cloudflare.com/ips-v4`; do
ufw allow from $i to any port 443 proto tcp
ufw allow from $i to any port 80 proto tcp
done
-
Renouveler l’IP d’origine si exposée ; ne pas la publier en DNS.
-
Authenticated Origin Pulls — certificat Cloudflare requis côté origine.
Piège 3 : oublier le suivi
Règles figées :
- Seuil trop bas → plaintes utilisateurs
- Trafic en hausse → seuil obsolète
- Nouvelle tactique d’attaque → protection affaiblie
Recommandation :
Mensuellement, Security Analytics :
- Volume bloqué
- Faux positifs
- Taux 429 anormal
Ajustements :
- Peu de 429 → seuil plus bas possible
- Beaucoup de 429 → relever le seuil ou affiner la règle
Astuce 1 : attaques distribuées
Nombreuses IP proxy, chacune sous le seuil — le plafond par IP seul ne suffit pas.
Méthodes :
- Session/Cookie (pas IP)
Session ID stable ; Characteristics Cookie + nom du cookie.
- Filtre User-Agent
Scripts avec Python, curl, etc. — condition User-Agent.
- Bot Management (payant)
Score 1-100 ; règle sur Bot Score < 30. Business ou Enterprise.
Astuce 2 : réponse progressive (payant)
Trois niveaux (payant) :
Niveau 1 (souple) :
- Seuil : ex. 30/min
- Action : JS Challenge
Niveau 2 (moyen) :
- Seuil : ex. 50/10 min
- Action : Managed Challenge
Niveau 3 (strict) :
- Seuil : ex. 100/heure
- Action : Block 24 h
Plus de marge pour les humains ; sanctions croissantes pour les attaquants.
Astuce 3 : protection géographique
Trafic surtout en Chine — limite stricte à l’étranger :
(ip.geoip.country ne "CN") and (http.request.uri.path eq "/api/login")
Attention aux VPN. Préférez Challenge à Block.
En conclusion
L’essentiel : le rate limiting n’est pas compliqué — configurez-le avant l’attaque, pas après l’alerte à 3 h du matin.
Trop de sites réagissent seulement quand l’alarme sonne. Cinq minutes de config valent des nuits tranquilles.
Actions :
- Configurez une règle maintenant, même sans attaque passée.
- Commencez par le login — avec 1 règle Free, c’est la priorité.
- Testez — curl ou rafraîchissements ; vérifiez Security Events.
- Revoyez chaque mois — Security Analytics, ajustez les seuils.
Dernier rappel : pare-feu origine = IP Cloudflare uniquement ; sinon bypass et règles inutiles.
Questions : documentation Cloudflare ou forums communautaires — la plupart des cas sont déjà documentés.
Que ce guide vous aide à configurer le rate limiting et à tenir le CC à distance.
Configurer le rate limiting Cloudflare contre les attaques CC
Du CC au rate limiting : étapes complètes, protection en 5 minutes, seuils recommandés et pièges à éviter
Estimated time: PT5M
-
1
Step 1: Comprendre le CC et le principe du rate limiting
Caractéristiques du CC : -
2
Step 2: • DDoS
paquets massifs, facilement détectables -
3
Step 3: • CC
requêtes HTTP normales, comme un visiteur -
4
Step 4: • Machine zombie
plus de 1 000 requêtes en 30 s -
5
Step 5: • Utilisateur normal
moins de 10/min -
6
Step 6: • Au-delà du seuil
CAPTCHA ou blocage -
7
Step 7: • Attaquant
200 à 300 req/s -
8
Step 8: • Seuil
20/min -
9
Step 9: Version gratuite et limites de règles
Gratuit depuis octobre 2022 : -
10
Step 10: • Règles
Free 1, Pro 10, Business 15 -
11
Step 11: • Fonctions avancées
Bot Score, JA3, etc. -
12
Step 12: • Temps de réponse
payant plus rapide sous charge -
13
Step 13: • Cible
login, inscription ou API critique -
14
Step 14: • Mes projets
1 règle login, près d’un an sans problème -
15
Step 15: Seuils recommandés par scénario
Login / inscription : -
16
Step 16: • Niveau 1
4 req/min → JavaScript Challenge -
17
Step 17: • Niveau 2
10 req/10 min → CAPTCHA -
18
Step 18: • Niveau 3
20 req/heure → blocage 1 jour -
19
Step 19: • Gratuit
ex. 100 req/heure -
20
Step 20: • Payant
paliers par offre -
21
Step 21: Tutoriel 5 min : créer une règle
Étape 1 : Security → WAF → Rate limiting rules -
22
Step 22: • Create rule ; Free
0/1 rules -
23
Step 23: Étape 2
Rule name — ex. Login-Rate-Limit -
24
Step 24: Étape 3
Expression -
25
Step 25: • Login
URI Path equals /api/login -
26
Step 26: • API
URI Path contains /api/ -
27
Step 27: • Option
exclure User-Agent MyMonitorBot -
28
Step 28: Étape 4
paramètres -
29
Step 29: • Characteristics
IP Address (login) -
30
Step 30: • Period
60 s -
31
Step 31: • Requests
20 (login) ou 30 (API) -
32
Step 32: • Duration
10 min -
33
Step 33: Étape 5
Managed Challenge recommandé ; Block après validation -
34
Step 34: Étape 6
Deploy -
35
Step 35: Étape 7
curl en boucle ; 429 à partir de la 21e requête ; Security → Events -
36
Step 36: Paramètres, action et pièges
Characteristics, Period, Requests, Duration — détails ci-dessus -
37
Step 37: Piège SEO
ne pas limiter toute la home -
38
Step 38: Piège bypass
pare-feu origine = IP Cloudflare -
39
Step 39: Piège suivi
Security Analytics mensuel, ajuster les seuils
FAQ
Le rate limiting Cloudflare est-il disponible en version gratuite ? Quelles sont les limites de règles ?
Avant :
• Avant 2022, le rate limiting était facturé au trafic : 5 dollars par million de requêtes
• Pour les sites à fort trafic, la facture pouvait être conséquente
Aujourd'hui, plus de souci : Cloudflare a annoncé sur son blog officiel que les règles de rate limiting sont incluses dans tous les plans, sans frais supplémentaires.
Les utilisateurs Free peuvent créer 1 règle ; Pro et Business en autorisent davantage.
Principales différences Free vs payant :
• Nombre de règles (Free 1, Pro 10, Business 15)
• Fonctions avancées (plans payants : conditions plus complexes, Bot Score, empreinte JA3, etc.)
• Temps de réponse (plans payants plus rapides sous forte charge)
Pour les PME, 1 règle suffit souvent. L'essentiel : l'appliquer là où l'attaque est la plus probable — login, inscription ou API critique. Sur mes petits projets, une seule règle protège le login ; après près d'un an, aucun problème majeur.
Même avec 1 seule règle en Free, la protection DDoS de base Cloudflare est incluse dans tous les plans, sans limite de trafic. Les DDoS évidents sont interceptés automatiquement. Le rate limiting cible surtout les attaques CC plus discrètes et l'abus d'API.
Qu'est-ce qu'une attaque CC ? Pourquoi le rate limiting la bloque-t-il ?
• CC signifie Challenge Collapsar : simuler de nombreux utilisateurs normaux qui saturent votre site
Différence CC vs DDoS :
• Le DDoS classique envoie des paquets massifs, facilement détectables ; la protection DDoS automatique de Cloudflare les bloque en général
• Le CC est plus insidieux : des requêtes HTTP normales, comme un vrai visiteur ; la protection DDoS peut ne pas les repérer
Exemple : un utilisateur normal consulte quelques pages par minute, soit 5 à 10 requêtes. En CC, une IP peut lancer plus de 1 000 requêtes en 30 secondes — clairement anormal. Les attaquants utilisent souvent de nombreuses machines ou des IP proxy, rendant le trafic dispersé et difficile à filtrer.
Données d'attaque :
• La documentation de bonnes pratiques WAF d'Alibaba Cloud indique qu'une machine zombie typique peut dépasser 1 000 requêtes en 30 secondes
• Un utilisateur normal reste en général sous 10 requêtes par minute
• L'écart est net
Principe du rate limiting :
• Surveiller la fréquence des requêtes par IP (ou session, clé API, etc.) ; au-delà du seuil, action
• CAPTCHA pour prouver qu'on est humain, ou blocage temporaire
Lors de l'attaque que j'ai subie, l'IP de l'attaquant envoyait 200 à 300 requêtes par seconde ; mon seuil était 20 par minute. Le trafic malveillant déclenchait la limite en 1 à 2 secondes ; le reste était bloqué. Les utilisateurs normaux ne la touchaient pas.
Quels seuils selon le scénario ? Login, API et pages web ?
Configuration progressive en trois niveaux (recommandation Cloudflare) :
• Niveau 1 : 4 req/min → JavaScript Challenge
• Niveau 2 : 10 req/10 min → CAPTCHA
• Niveau 3 : 20 req/heure → blocage 1 jour
En Free (1 règle), simplifiez. Ma config : 20 req/60 s → blocage 10 min.
Comment j'ai fixé ce seuil : dans les logs, même avec des mots de passe erronés, les utilisateurs ne dépassent pas 5 tentatives par minute. Les scripts d'attaque en envoient des centaines. 20/min bloque la plupart des attaques sans faux positifs.
Sécurité stricte : 10 req/60 s → blocage 1 heure.
API (selon le métier) :
• API de requête simple : 30 req/10 s → JavaScript Challenge (~3 req/s, suffisant pour la plupart des frontends)
• API intensive (images, analytics) : 10 req/60 s → limitation de débit
• API publique : selon facturation et capacité (ex. 100 req/heure en gratuit ; paliers selon l'offre payante)
Pages web (anti-scraping) :
• Pages courantes : 100 req/30 s → JavaScript Challenge
• Pages spéciales (recherche, téléchargement) : 50 req/60 s → CAPTCHA
Pourquoi un seuil élevé sur les pages ? Navigation rapide + CSS, JS, images = plusieurs requêtes par page. 100 req/30 s ne gêne pas un visiteur ; un crawler à cette cadence est facilement bloqué.
Attention : ne serrez pas la page d'accueil ! J'avais limité la home ; Google et Bing ont été bloqués et le SEO a chuté.
Comment configurer une règle de rate limiting Cloudflare ? Étapes détaillées ?
• Connexion au tableau de bord Cloudflare, choisir le domaine
• Chemin : Security → WAF → Rate limiting rules
• Bouton Create rule ; en Free : 0/1 rules (1 règle restante)
Étape 2 : informations de base
• Rule name : ex. Login-Rate-Limit ou API-Protection
Étape 3 : conditions (Expression)
• Protéger le login :
- Field: URI Path
- Operator: equals
- Value: /api/login
• Protéger toute l'API :
- Field: URI Path
- Operator: contains
- Value: /api/
Étape 4 : paramètres de rate limiting
• Characteristics : IP Address (recommandé contre le CC)
• Period : 60 secondes
• Requests per period : 20 (login) ou 30 (API)
• Duration : 10 minutes
Exemple login : IP Address, 60 s, 20 requêtes, blocage 10 min si dépassement.
Étape 5 : action
• Managed Challenge (recommandé) : Cloudflare distingue humain et bot ; impact minimal en cas d'erreur
• Block : 403 direct ; efficace mais risqué si faux positif ; à utiliser après validation
Commencez par Managed Challenge, puis Block si besoin.
Étape 6 : Deploy — effet immédiat
Étape 7 : vérification
• for i in {1..30}; do curl https://yourdomain.com/api/login; done
• Les 20 premières OK ; à partir de la 21e : 429 ou page de défi
Pièges courants ? Éviter les faux positifs et bloquer les crawlers SEO ?
• Ne serrez pas la home ni tout le site !
• Règle globale 50 req/30 s : erreurs de crawl Google Search Console en hausse
• Les crawlers chargent CSS, JS, images — déclenchent facilement la limite
• Solution : limiter login et API ; pages de contenu souples ou sans limite
Recommandations :
• Login, inscription, API : strict
• Contenu : souple ou sans limite
• Home : éviter les limites strictes
• Bot Management (payant) pour distinguer crawlers légitimes et malveillants
Piège 2 : contournement Cloudflare
• Attaque directe sur l'IP d'origine, bypass du proxy
• Cloudflare est un reverse proxy ; si l'IP réelle fuit, l'attaquant contourne les règles
Solutions :
1) Pare-feu serveur : n'autoriser que les IP Cloudflare (listes IPv4/IPv6) sur 80/443
2) Renouveler l'IP d'origine si exposée ; ne pas la publier en DNS
3) Authenticated Origin Pulls (certificat Cloudflare côté origine)
Piège 3 : oublier le suivi
• Vérifier mensuellement Security Analytics : volume bloqué, faux positifs, taux 429
• Peu de 429 : seuil peut baisser ; trop de 429 : relever le seuil ou ajuster la règle
Attaques distribuées ? Techniques avancées ?
• De nombreuses IP proxy, chacune sous le seuil ; le simple plafond par IP ne suffit pas
Méthodes :
1) Comptage Session/Cookie (pas IP) :
• Session ID stable même si l'IP change
• Characteristics : Cookie + nom du cookie de session
2) Filtre User-Agent :
• Scripts souvent avec Python, curl, etc. dans le UA
• Ajouter une condition User-Agent
3) Bot Management (payant) :
• Score 1-100 par requête ; règle sur Bot Score < 30
• Plans Business ou Enterprise
Stratégie progressive (payant) :
• Niveau 1 : seuil haut (ex. 30/min), JS Challenge
• Niveau 2 : seuil moyen (50/10 min), Managed Challenge
• Niveau 3 : seuil bas (100/heure), Block 24 h
Protection géographique :
• Expression : (ip.geoip.country ne "CN") and (http.request.uri.path eq "/api/login")
• Limite stricte hors Chine ; attention aux VPN
• Préférer Challenge à Block
10 min de lecture · Publié le: 1 déc. 2025 · Mis à jour le: 27 juil. 2026
Cloudflare Full Stack
Si vous arrivez depuis la recherche, le plus rapide est de passer à l’article précédent ou suivant de cette série.
Précédent
Règles pare-feu Cloudflare pour débutants : 5 règles gratuites pour filtrer 80 % du trafic malveillant (modèles inclus)
L'offre gratuite Cloudflare n'offre que 5 règles pare-feu ? Ce guide propose des modèles WAF éprouvés (IP, ASN, UA, chemins), la configuration des priorités pas à pas, et 30 minutes pour filtrer 80 % du trafic malveillant, avec expressions complètes
Partie 6 sur 23
Suivant
Guide complet du bouclier 5 secondes Cloudflare : 3 astuces de configuration pour limiter l'impact SEO et UX
Fonctionnement du bouclier 5 secondes Cloudflare (mode Under Attack), impact SEO et configuration précise via Page Rules, avec 7 bonnes pratiques et conseils pour optimiser la durée de passage du défi.
Partie 8 sur 23



Commentaires
Connectez-vous avec GitHub pour laisser un commentaire