Demandez un répertoire sans fichier d'index, et beaucoup de serveurs affichent la liste des fichiers à la place. Sauvegardes, exports, une vieille copie d'un fichier de configuration : tout ce qui traîne là est désormais public, et les scanners automatiques cherchent exactement cela.
Nginx
autoindex off; # the default, so check nobody turned it on
grep -rn autoindex /etc/nginx/
Apache et LiteSpeed
Options -Indexes
# or per directory, in .htaccess
Options -Indexes
Vérifiez chaque répertoire, pas seulement la racine
for d in uploads backup files export logs tmp; do
printf '%-10s ' "$d"
curl -sS -o /dev/null -w '%{http_code}\
' "https://yourdomain.com/$d/"
done
Un 200 sur l'un d'eux mérite d'être ouvert dans un navigateur tout de suite. 403 ou 404, voilà ce que vous voulez.
Un fichier d'index vide est un remède faible
Déposer un index.html dans chaque dossier masque la liste, et les fichiers restent atteignables par leur nom. Cela arrête un regard distrait et rien de plus — désactivez plutôt l'option au niveau du serveur.
La vraie réponse pour les fichiers privés
Tout ce qui ne doit pas être public n'a rien à faire sous la racine des documents. Gardez-le à l'extérieur et servez-le par un script qui vérifie qui demande.
/var/www/site/
public/ <- the document root
storage/ <- backups, exports, logs: no URL can reach these
Pendant que vous y êtes, cherchez les fichiers que les gens laissent derrière eux : .env, .git, config.php.bak, database.sql. Une sauvegarde du code oubliée dans la racine web a déjà divulgué des applications entières — demandez chacun d'eux et assurez-vous qu'il n'y est pas.