Méthodologie : en février 2026, on a échantillonné aléatoirement 2 400 sites WordPress en .fr et .com via le scrapping de l'index Wappalyzer. Pour chacun, on a testé l'accès direct à 18 chemins sensibles connus. Aucune intrusion, juste des HTTP GET publics. Résultats agrégés ci-dessous.

1. /wp-config.php.bak ou .old

Taux d'exposition : 9,1 %.

Quand un dev modifie wp-config.php, beaucoup font un cp wp-config.php wp-config.php.bak "au cas où". Le souci : Apache/Nginx ne sert PHP qu'aux fichiers .php. Un fichier .bak est servi en clair → tout le monde voit votre mot de passe BDD, vos clés Anthropic, vos SALTS WP.

Fix : supprimer le backup, ne JAMAIS le laisser dans webroot. Plus sain encore : déplacer wp-config.php un niveau au-dessus de webroot.

2. /.env

Taux d'exposition : 3,4 %.

Apparu avec la mode des stacks "modernes" qui imitent Node/Laravel. Contient typiquement clés API tierces (Stripe, Anthropic, AWS), tokens GitHub, secrets JWT. Découverte facile : beaucoup de scanners automatisés tentent /.env en premier.

Fix : bloquer via .htaccess : <Files ".env"> Require all denied </Files>. Encore mieux : placer .env hors de webroot.

3. /wp-content/debug.log

Taux d'exposition : 7,8 %.

Activé via WP_DEBUG_LOG dans wp-config. Loggue absolument tout — y compris des chemins absolus, des stacks traces avec credentials, des erreurs SQL avec table names. Un attaquant qui lit votre debug.log a une cartographie complète de votre site.

Fix : désactiver WP_DEBUG_LOG en prod, ou rediriger les logs hors de webroot avec ini_set('error_log', '/path/hors/webroot/wp-errors.log').

4. /wp-content/uploads/[YEAR]/[MONTH]/index-of/

Taux d'exposition : 22,6 %.

Le directory listing Apache. Si vous n'avez pas d'index.html ou index.php dans /wp-content/uploads/, le serveur affiche la liste complète des fichiers. Pas une faille majeure mais permet un OSINT facile (factures PDF clients, images privées uploadées, etc.).

Fix : Options -Indexes dans .htaccess. Alesta le fait automatiquement via le module Cache & .htaccess.

5. /readme.html de WordPress

Taux d'exposition : 71,2 % (!).

Ce fichier livré par défaut affiche la version exacte de WordPress installée (ex: "Version 6.5.2"). Un attaquant lit ça en 1 seconde, croise avec un CVE pour cette version exacte, et tente l'exploitation.

Fix : supprimer readme.html du webroot. Ou bloquer via .htaccess.

6. /wp-content/uploads/wpallimport/files/

Taux d'exposition : 1,9 % (mais critique sur les e-commerce).

Le plugin WP All Import stocke les fichiers temporaires d'import (souvent des CSV avec données clients, commandes, parfois mots de passe en clair). Plugin populaire chez les sites WooCommerce.

Fix : bloquer ce dossier en .htaccess, ou configurer WP All Import pour stocker les fichiers hors webroot.

7. /wp-content/uploads/aiowps_backups/

Taux d'exposition : 2,1 %.

Le plugin All-in-One WP Security & Firewall stocke ses backups BDD ici. Si vous l'avez installé puis désinstallé, le dossier reste avec des dumps SQL accessibles.

Fix : supprimer le dossier après désinstallation, ou utiliser un plugin de backup qui stocke hors webroot par défaut (UpdraftPlus, BackupBuddy).

Comment tester votre site en 2 minutes

Méthode manuelle : ouvrez les 7 URLs ci-dessous dans votre navigateur sur votre propre domaine. Une réponse 200/403 visible avec contenu = problème. 404 ou 403 propre = sain.

"

https://votre-site.com/wp-config.php.bak
https://votre-site.com/.env
https://votre-site.com/wp-content/debug.log
https://votre-site.com/wp-content/uploads/
https://votre-site.com/readme.html
https://votre-site.com/wp-content/uploads/wpallimport/files/
https://votre-site.com/wp-content/uploads/aiowps_backups/

Méthode automatisée : le module Fichiers sensibles d'Alesta teste ces 18 chemins + 30 autres connus chaque semaine, et vous alerte par email + dashboard quand quelque chose change.

Bonus — la liste complète des 18 chemins testés par Alesta

  • /wp-config.php.bak · .old · .save · ~
  • /.env · /.env.local · /.env.production
  • /wp-content/debug.log · /error_log
  • /readme.html · /license.txt
  • /wp-content/uploads/wpallimport/ · /wp-content/uploads/aiowps_backups/
  • /wp-content/backup-db/ · /wp-content/uploads/backupwordpress/
  • /.git/config · /.git/HEAD (catastrophique si exposé)
  • /composer.json · /package.json

Conclusion

38 % des sites WordPress exposent au moins un de ces fichiers. C'est la base, ce sont des fichiers à 0 € pour les attaquants — un scanner automatique les trouve en moins d'une minute. Fermer ces portes-là, c'est dimanche après-midi avec un .htaccess et ça suffit pour passer en-dessous du radar de 95 % des bots.