Le listage de répertoires est une fonctionnalité du serveur qui affiche la liste des fichiers et dossiers lorsqu’aucun fichier d’index n’est présent. Le désactiver est une étape cruciale pour la sécurité d’un site web afin d’éviter la divulgation d’informations. Cet article explique les risques du listage de répertoires, comment le désactiver sur Apache, Nginx et IIS, ainsi que les bonnes pratiques pour protéger vos répertoires serveur.
Qu’est-ce que le listage de répertoires et pourquoi le désactiver ?
Le listage de répertoires est le comportement par défaut des serveurs web qui affiche tout le contenu d’un dossier quand aucun fichier d’index (comme index.html, index.php ou default.htm) n’est trouvé. Le navigateur montre alors les fichiers et dossiers sous forme de liens hypertextes, permettant aux visiteurs d’y accéder ou de les télécharger directement.
Bien que cette fonction puisse être pratique pour un partage rapide de fichiers ou du débogage, elle représente une faille de sécurité sérieuse. Des attaquants peuvent exploiter l’affichage des répertoires pour découvrir des fichiers sensibles comme des sauvegardes de base de données, des fichiers de configuration (.env, config.php), des journaux ou des scripts qui devraient rester privés. Ces informations peuvent ensuite servir à des attaques plus poussées comme le forced browsing ou l’énumération de répertoires.
Laisser activé le listage de répertoires revient à fournir une carte de tous vos fichiers sensibles à d’éventuels attaquants.
Exemple d’un listage de répertoires actif
Si le listage de répertoires n’est pas désactivé, lorsqu’une personne accède à un dossier sans fichier d’index, elle verra un affichage similaire à celui-ci.

Comment désactiver le listage de répertoires sur différents serveurs
La méthode pour désactiver le listage de répertoires dépend du serveur web que vous utilisez. Voici des guides techniques pour les serveurs les plus courants : Apache, Nginx et IIS.
1. Désactiver le listage de répertoires sur Apache
Sur Apache, vous pouvez contrôler l’affichage des répertoires via le fichier .htaccess ou la configuration d’un hôte virtuel. Deux directives principales sont souvent utilisées : Options -Indexes et IndexIgnore.
Utiliser Options -Indexes
Ajoutez la ligne suivante dans votre fichier .htaccess à la racine du dossier concerné ou dans un bloc <Directory> de la configuration principale :
Options -IndexesCette directive interdit à Apache de générer la liste des répertoires. Quand un utilisateur accède à un dossier sans fichier d’index, le serveur renvoie une réponse 403 Forbidden. C’est la méthode recommandée car elle bloque totalement l’accès.

Utiliser IndexIgnore
Une alternative est la directive IndexIgnore qui masque des fichiers ou dossiers spécifiques de l’affichage. Exemple :
IndexIgnore *Cette commande cache tous les fichiers, donnant l’impression que le dossier est vide. Cependant, contrairement à Options -Indexes, le répertoire reste accessible si quelqu’un connaît le nom exact du fichier. IndexIgnore est donc moins sécurisé.

Attention : Si vous utilisez Options -Indexes mais devez autoriser l’accès à certains fichiers, vous pouvez le combiner avec DirectoryIndex ou des règles de réécriture.
2. Désactiver le listage de répertoires sur Nginx
Nginx utilise le module ngx_http_autoindex_module pour gérer l’affichage des répertoires. Par défaut, autoindex est désactivé. Vous pouvez toutefois vous en assurer en ajoutant cette configuration dans un bloc location ou server :
location / {
autoindex off;
}Pour le désactiver pour tout le serveur, placez-le dans le bloc http ou server. Pour vérifier si autoindex est actif, utilisez nginx -T pour afficher toute la configuration.
3. Désactiver le listage de répertoires sur IIS (Internet Information Services)
Sur IIS, l’affichage des répertoires est géré par la fonctionnalité d’exploration des répertoires (Directory Browsing). Vous pouvez la désactiver via le gestionnaire IIS :
- Ouvrez le gestionnaire IIS, sélectionnez le site ou le dossier à configurer.
- Double-cliquez sur la fonction Exploration des répertoires.
- Dans le panneau Actions, cliquez sur Désactiver.
Autre possibilité, modifiez la configuration via le fichier web.config en ajoutant l’élément suivant :
<configuration>
<system.webServer>
<directoryBrowse enabled="false" />
</system.webServer>
</configuration>Méthode alternative : créer des fichiers d’index vides
Si vous n’avez pas accès à la configuration du serveur, le moyen le plus simple est de créer un fichier d’index vide dans chaque dossier. Il suffit de créer un fichier nommé index.html (ou index.php) sans contenu. Quand les utilisateurs accèdent au dossier, le serveur affiche une page blanche ou redirige vers ce fichier.
Cette approche fonctionne pour les petits sites web, mais devient peu pratique pour des milliers de dossiers. De plus, un fichier d’index vide reste accessible et n’offre aucune protection si quelqu’un devine les noms de fichiers.
Pour une sécurité maximale, combinez les fichiers d’index vides avec la désactivation du listage au niveau du serveur.
Bonnes pratiques pour la sécurité des répertoires
En plus de désactiver le listage de répertoires, voici quelques étapes supplémentaires pour renforcer la sécurité de vos dossiers serveur :
- Limitez l’accès par authentification : Utilisez
.htpasswdsur Apache ou l’authentification intégrée sur Nginx/IIS pour protéger les répertoires administratifs. - Placez les fichiers sensibles hors de la racine des documents : Stockez les fichiers de configuration et les données critiques dans des dossiers inaccessibles via le web.
- Auditez régulièrement : Utilisez des scanners de sécurité ou des robots pour détecter les dossiers qui ont encore l’affichage activé.
- Désactivez l’exécution de scripts dans les dossiers d’upload : Avec
Options -ExecCGIsur Apache ou des règles équivalentes sur d’autres serveurs.
L’OWASP (Open Web Application Security Project) recommande de toujours désactiver le listage de répertoires dans le cadre du durcissement des serveurs. Vous pouvez consulter leur guide officiel sur la page de l’OWASP concernant le forced browsing.
Conclusion
Désactiver le listage de répertoires est une étape fondamentale pour sécuriser votre site web. En suivant les guides ci-dessus, vous pouvez éviter la divulgation accidentelle d’informations. Choisissez la méthode adaptée à votre infrastructure serveur : utilisez Options -Indexes sur Apache, autoindex off sur Nginx ou désactivez l’exploration des répertoires sur IIS. Combinez ces mesures avec d’autres pratiques de sécurité pour créer une défense en profondeur.
Pour plus de documentation, visitez les pages officielles d’Apache mod_autoindex et de Nginx ngx_http_autoindex_module.


