Le CDN d'images sert encore un vieux HTML ou un PHP
Le CDN d'images — ou le proxy « tout le site » — ressert encore un vieux HTML, parfois un PHP qu'il n'aurait jamais dû prendre. Purge large après incident. Vérifiez qu'il ne proxy pas des chemins exécutables. Une purge d'une URL ne suffit pas si le générateur a créé 10 000 adresses.
Purge large après incident. Vérifiez que le CDN ne proxy pas des chemins PHP. Une purge « une URL » ne suffit pas si le générateur a créé 10 000 adresses.
Ce que le CDN a encore en mémoire
Vous avez nettoyé l'origine. Tokyo et Francfort servent encore le footer d'hier, un JS de checkout, une page spam en 200. Les visiteurs et Googlebot ne tapent pas tous l'origine. Ils tapent le bord. Un constat « fichiers clean » sans purge est un constat à moitié.
Les TTL d'images sont longs (jours, semaines). Les TTL HTML aussi chez ceux qui cachent tout. Distinguez : une image pirate (rare) vs un HTML / JS cuit (fréquent).
Les premiers gestes n'incluent pas Cloudflare. La clôture, si vous en avez un, si.
Images seulement, ou tout le domaine
Un CDN « médias » (sous-domaine `cdn.`, rewrite d'uploads) : purgez ce host, et vérifiez qu'il ne sert pas autre chose que des images (un `.php` dans uploads proxyfié). Un proxy orange sur tout le domaine (Cloudflare, etc.) : purgez tout, et relisez les règles Page Rules / Cache Rules qui auraient pu figer l'admin ou le checkout « pour la perf ».
Headless : l'edge du front (Vercel, Netlify) EST le CDN du HTML. Rebuild + purge. Headless.
Deux CDN (images + proxy) : deux consoles, deux purges. En oublier un, c'est le symptôme qui reste « selon le pays ».
Purge : une URL, un préfixe, tout
Une URL : inutile si 10 000 slugs spam ont été vus. Un préfixe : utile pour `/wp-content/uploads/2024/03/` ou `/ja/`. Tout : le plus sûr après un générateur ou un cloaking, le plus brutal pour la perf (quelques heures). Après un piratage, on assume le brutal.
« Purge by tag » si vous en avez : encore faut-il que les tags existent. En doute, purge all.
Attendez la propagation (souvent minutes, parfois plus). Retestez depuis un réseau hors bureau, mobile. Le bureau peut encore tenir un cache d'entreprise.
- Générateur / cloaking : purge all.
- Un fichier thème : l'URL + le HTML qui l'embarque.
- Checkout : HTML + JS, pas seulement le logo.
PHP et chemins dangereux derrière le proxy
Un CDN mal réglé qui cache ou proxy `*.php` : il peut servir une ancienne réponse, ou, pire, exposer un script que l'origine ne voulait plus. Les chemins d'uploads exécutables + CDN = double peine. Interdisez PHP dans uploads à l'origine, et ne cachez pas ces chemins comme des images.
Nous ne donnons pas de config d'attaque. Le geste : listez ce que le CDN est autorisé à prendre (extensions, chemins), ôtez PHP, ôtez `.env`, ôtez les zip. Uploads.
Un WAF CDN n'est pas une purge. Il peut même cacher un 200 à vous et le servir à d'autres. Testez comme Googlebot / visiteur, pas seulement logué.
Cloudflare, Bunny, KeyCDN : le même geste
Le bouton s'appelle Purge Everything / Purge All / Flush. Les règles s'appellent Page Rules, Cache Rules, Pull zones. Le geste métier est le même. Un compte CDN avec un utilisateur inconnu se révoque comme GTM. Accès.
Cloudflare Workers / snippets : du code à la bordure, hors FTP. Relisez-les. Un worker peut réécrire le HTML après votre nettoyage d'origine. C'est le GTM du DNS.
Les certificats et le proxy : renouveler Let's Encrypt ne purge pas. Certificat.
Après : règles plus étroites
Moins cacher l'HTML du checkout et de wp-admin. Plus cacher les images immuables (hash dans le nom). Bypass cache sur les cookies de session boutique.
Ne « profitez pas » pour tout mettre en cache agressif le soir du piratage. La perf revient la semaine suivante.
Surveillance : un HTML différent selon le POP (pays) après clôture = encore un trou de purge ou un cloaking vivant. Surveillance.
Clôture avec Redis et le cache page
Ordre déjà dit : origine, objet, page, opcode, CDN. Redis. Un devis qui purge Cloudflare et oublie Redis (ou l'inverse) laisse un tiroir.
Les 410 sur le spam doivent être vus par le CDN (ne pas servir un 200 cuit). Purge des préfixes morts, ou all.
Déclarer : nommez le CDN. On ne devine pas un Worker. Cinq mots, une clôture plus courte.