Siegler Informatique

Cloudflare offre aujourd’hui de nombreuses possibilités pour optimiser les performances et la sécurité d’un site web.
Dans cet article, je vais présenter deux aspects complémentaires :

Nous allons commencer par la partie cache.


1. Gestion avancée du cache

Depuis plusieurs mois, Cloudflare propose un système de cache beaucoup plus souple et précis.
Grâce à ces nouvelles options, il devient possible d’améliorer fortement les performances d’un site, en particulier pour les visiteurs anonymes.

Il est désormais possible de définir la politique de cache en fonction des cookies, de l’user-agent ou encore de l’URL consultée.
Cela permet, par exemple, d’activer un cache agressif pour tous les visiteurs non authentifiés, tout en le désactivant automatiquement pour les utilisateurs connectés (rédacteurs, membres, espace client, etc.).

Pour la plupart des sites “vitrines” — c’est-à-dire sans interaction individuelle ni contenu personnalisé — cela apporte une réactivité bien meilleure et réduit nettement la consommation de ressources côté serveur.

Attention : pour que cette approche fonctionne correctement, votre site doit présenter exactement le même contenu à tous les visiteurs.
Il est fortement recommandé d’utiliser un thème responsive afin que les versions mobile et desktop soient identiques du point de vue du HTML généré.
Si vous devez différencier l’affichage, il faut le faire côté navigateur, via CSS ou JavaScript, pas via le serveur.


1.1 Mise en place d’une règle de cache Cloudflare

Dans cet article, je vais me baser sur un site WordPress pour illustrer le fonctionnement, mais les principes s’appliquent à n’importe quel CMS si l’on adapte les règles.

Concrètement, il faut se rendre dans le menu Caching, puis Cache Rules.
La fonctionnalité est encore annoncée comme bêta, mais elle est parfaitement utilisable.

L’objectif de la règle est le suivant :

Lorsqu’on crée une règle, on enchaîne plusieurs conditions permettant à Cloudflare de déterminer s’il doit servir une page depuis son cache ou renvoyer du contenu frais depuis le serveur d’origine.

Important : testez toujours après configuration

Dès que vous mettez en place des règles de cache avancées, il est indispensable de vérifier que votre site se comporte correctement.

Testez :

Cela permet de s’assurer que Cloudflare sert le cache uniquement aux visiteurs anonymes et que les zones sensibles restent correctement rafraîchies.

Ci-dessous, vous pourrez insérer la règle complète que j'utilise :.

(http.host contains "xxx" and not http.cookie contains "wordpress_logged_in_" and not http.cookie contains "woocommerce_items_in_cart" and not http.cookie contains "woocommerce_cart_hash" and not http.cookie contains "wptouch_switch_toogle" and not http.cookie contains "comment_author_" and not http.cookie contains "comment_author_email_" and not http.request.uri.path contains "/wp-admin/" and not http.cookie contains "wp_sec_" and not http.request.uri.query contains "nocache" and not http.request.uri contains "wp-login.php" and not http.user_agent contains "WP Rocket/Preload" and not http.request.uri.path contains "feed")

1.2 Explication détaillée des conditions de la règle

On va reprendre tout cela étape par étape.
À noter : j’utilise systématiquement le connecteur logique and (ou et si votre interface Cloudflare est en français).

Voici le détail des conditions :


1.3 Paramètres à configurer après la règle

Une fois toutes ces conditions définies, il reste trois paramètres essentiels à régler :

1) Définir les requêtes « éligibles au cache »

Cloudflare doit comprendre qu’il doit mettre en cache tout ce qui ne correspond pas aux exclusions listées plus haut.

2) Configurer l’Edge TTL

Sélectionner « Remplacer l’origine » puis choisir une durée.
J’utilise généralement 2 heures : cela offre un bon équilibre entre performances et fraîcheur du contenu.

Pour un site mis à jour rarement, vous pouvez augmenter cette durée.

3) Exclure les erreurs du cache (Status Code TTL)

Il est crucial que Cloudflare ne mette jamais en cache les pages d’erreur renvoyées par le serveur (base de données indisponible, surcharge PHP, etc.).

Dans la section Status Code TTL, définir :

Ainsi, les erreurs 4xx et 5xx ne seront jamais mises en cache.


1.4 Purge automatique du cache

Si vous augmentez significativement le TTL, il peut être utile d’utiliser l’API Cloudflare pour purger automatiquement le cache lors d’une mise à jour du site, afin que les nouvelles versions des pages soient diffusées immédiatement.
Pour les sites WordPress, vous pouvez utiliser l’extension officielle :

https://wordpress.org/plugins/cloudflare/


2. Règles de sécurité essentielles dans Cloudflare

En complément de la règle de cache, il est recommandé de mettre en place quelques règles de sécurité simples mais très efficaces.
Elles réduisent significativement le bruit (scans automatisés, bots agressifs, tentatives d’intrusion) et protègent mieux votre site, en particulier WordPress.

Voici trois règles que j’utilise régulièrement.


2.1 Bloquer certains User-Agent

De nombreux robots malveillants ou scrapers très agressifs s’identifient via des user-agent reconnaissables.
Il est possible de les bloquer directement via une règle de pare-feu.

Cette liste est un exemple : chacun est libre de l’adapter à ses besoins et à la réalité de son site.
L’objectif est de filtrer des bots clairement indésirables, connus pour scanner les sites à la recherche de failles.

(http.user_agent contains "Go-http-client") or (http.user_agent eq "") or (http.user_agent contains "l9scan") or (http.user_agent contains "Wget") or (http.user_agent contains "curl") or (http.user_agent contains "python") or (http.user_agent contains "Scrapy") or (http.user_agent contains "perl") or (http.user_agent contains "PowerShell") or (http.user_agent contains "Java") or (http.user_agent contains "PHP") or (http.user_agent contains "aiohttp") or (http.user_agent contains "ImagesiftBot") or (http.user_agent contains "GuzzleHttp") or (http.user_agent contains "libredtail-http")

2.2 Imposer un challenge sur xmlrpc.php et wp-login.php

Pour les sites WordPress, deux endpoints sont particulièrement ciblés :

La solution la plus simple et la plus efficace consiste à appliquer un Managed Challenge sur ces URLs.
Cela bloque automatiquement la majorité des attaques automatisées sans gêner les visiteurs légitimes.

Cette règle ne concerne évidemment que WordPress.
Pour d’autres CMS, il faudra adapter en fonction des points d’entrée sensibles.

(http.request.uri contains "wp-login.php") or (http.request.uri contains "xmlrpc.php")

2.3 Challenge pour les visiteurs hors Europe / USA ( sauf bots connus )

De nombreux scans et tentatives d’intrusion proviennent de régions du monde qui n’ont aucune raison légitime d’accéder à votre site.
Pour limiter ce bruit, il est possible d’imposer un challenge aux visiteurs :

Cette règle réduit fortement les requêtes malveillantes, tout en laissant passer les visiteurs et robots légitimes sans friction.

(not ip.src.continent in {"EU" "NA"} and not cf.client.bot)

2.4 Bonnes pratiques SSL/TLS

Quelques réglages simples mais importants pour éviter certains pièges courants :

Ces options ne remplacent pas une configuration serveur propre, mais elles garantissent une couche SSL cohérente et sécurisée côté Cloudflare.


Remarque générale

Ces règles ne garantissent pas une sécurité absolue, mais elles éliminent une grande partie du bruit malveillant et renforcent significativement la protection du site.
Elles sont simples à maintenir et ne nécessitent aucun changement côté serveur.