Par défaut, WordPress stocke vos données multimédias dans un dossier /wp-content/uploads/ qui est accessible en saisissant l’URL dans un navigateur Internet. N’importe quelle personne mal avisée peut donc afficher le contenu de ces répertoires susceptibles de contenir des données personnelles. Réglons ce problème de sécurité sans plus tarder en intervenant dans le .htaccess.
N.B : notez que cette astuce fonctionne pour n’importe quel serveur Apache et que le choix du CMS – WordPress en l’occurrence, n’a aucun rapport.
Cette astuce va nous permettre d’interdire le listage d’un répertoire et donc de son contenu présent sur votre serveur FTP.
Notons toutefois que certains dossiers sensibles comme /wp-content/themes et /wp-content/plugins ne sont pas accessible via l’URL car ils contiennent un fichier index.html. Un fichier par défaut que lit en premier le navigateur.
Le principal inconvénient de cette méthode est qu’il nous faut ajouter un tel fichier dans chaque nouveau dossier : une opération fastidieuse que nous allons contourner en ajoutant une ligne de code dans le fichier .htaccess.
A l’aide d’un client FTP comme FileZilla, Cyberduck ou Transmit, connectez-vous à la racine de votre installation de WordPress.
Éditez ensuite le fichier .htaccess qui est un fichier caché. Utilisez donc les fonctions de votre client FTP pour afficher le contenu masqué.
En fin de fichier, rajoutez la ligne de code suivante :
Options All -Indexes
Sauvegardez le tout puis testez le bon fonctionnement de l’opération dans un navigateur.
Vos répertoires ne sont désormais plus accessibles en lecture et leur contenu est donc protégé de tout téléchargement. Le visiteur obtient donc une erreur 404 lui informant qu’aucune page de ce type n’existe. Votre sécurité s’en trouve renforcée !
Crédits photo : Jeremy Cherfas
Podcast: Télécharger (Durée: 3:13 — 33.4MB)







La photo est trop belle. J’adore le ptit cadenas moderne en comparaison de l’ancien. Remarque ca passe bien avec l’article, une petite phrase au lieu de centaines de fichiers index.
Merci pour cette astuce.
Thierry
Merci énormément pour cette astuce.
C’est ajouté, merci
J’ai jamais rien fait et j’ai déjà une page 404.
moi j’obtiens une erreur 500 internal erreur
Pareil, j’ai la même erreur
Comme indiqué plus base, probablement une limitation hébergeur…
un fichier index.html avec ce contenu peut aussi suffire (sauf qu’il n’agit pas dans les sous-répetoires mais est très pratique pour les hébergements n’autorisant pas les .htaccess) :
history.go(-1);Manque les balises script à mon commentaire
:
history.go(-1);Par contre, ton script me faisait revenir en arrière la page de cet article… jusqu’à ce je regarde les commentaires !
Bonjour,
pouvez vous détailler les manoeuvres à faire pour l’ignorant que je suis… Par exemple, comment je me connecte à « la racine de mon installation de WordPress »? Oui, je sais cette question vous fait rire, mais je ne voudrais pas faire de bêtises !
Merci
Allues, à l’aide d’un client ftp. Filezilla par exemple. Regardez sur le web « tutoriel filezilla » si vous voulez une documentation.
J’ai une question sur le « Options All -Indexes » : le répertoire uploads ne risque-t-il pas de ne plus être accessible depuis les pages du site également ?
Ça marche très bien pour moi et Filezilla m’affiche par défaut les fichiers cachés.
Merci beaucoup !
Le pb est que quand tu mets ce code, tu n’as plus accès à la page admin
On n’a même plus accès au site via le navigateur
Cela vient peut-être de ton hébergeur car cette astuce est reconnue.
Bonjour,
Merci d’avoir répondu; je suis en hébergement mutualisé; vous voulez dire que c’est la configuration du serveur qui fait cela.
Tu obtiens une erreur 500 ?
Merci pour cette astuce !
Manipulation ajoutée à mon fichier.htaccess. Ce sont des petites manipulation qui prennent 30 secondes et ça marche. Encore merci pour les « 14 astuces indispensables ».
Est ce que ca marche aussi avec une installation en version MultiSite ?
Bien entendu, puisqu’un multisites, c’est un site. Les différents sous-sites sont dans l’arborescence du site, ça ne fait donc pas de différence.
Bonsoir,
Apparement cette manip empêche même l téléchargement de fichier qu’on propose dans le cadre de notre site! genre cadeau gratuit, etc.
Donc c’est quoi la solution s’il y en a une, pour qu’on puisse autoriser les autres à télécharger un fichier à partir de notre espace d’hébergement?
Cela m’étonne car j’ai déjà utilisé ce type d’options de sécurité sans soucis. Ne serait-ce pas un plugin qui te poserait problème ?
Mais c’est écrit : Vos répertoires ne sont désormais plus accessibles en lecture et leur contenu est donc protégé de tout téléchargement.
Donc, les repertoires ou fichiers ajoutés ne seront plus accessibles !
C’est bon aurélien problème résolu, il fallait juste mettre l’adresse entière pour pouvoir télécharger un fichier sinon on peut pas accéder aux repertoires. Merci
Chez OnLine la ligne de code à insérer dans .htaccess est différente , il faut mettre :
« IndexOptions –Indexes » et non « Options All –Indexes »
sinon on a erreur 500 et tout est bloqué.
A l’aide!!
J’ai fais cette manip, tout à disparu
Plus rien dans mon FTP, mon site affiche:
Index of /
Name Last modified Size Description
Et plus moyen d’accéder à mon admin!!
Quelqu’un aurait-il une solution?
Supprimes le fichier .htaccess et tout devrait rentrer dans l’ordre.
Le problème c’est qu’il n’a plus rien de visible dans mon ftp. Hors les fichiers sont toujours présent, le favicon dans la barre d’adresse du navigateur est toujours présent.
J’ai résolu le problème en renvoyant tous les fichiers et dossiers du site par ftp d’une sauvegarde que j’avais faite, la tout est revenu dans l’ordre, mais je sais pas si c’est une bonne solution, à mon avis maintenant tout est en double, les fichiers cachés par la manip et les fichiers que j’ai renvoyé manuellement
Voilà ce que j’ai trouvé mais pas encore testé:
URl de la page: http://www.wiscocomputing.com/articles/using_htaccess.htm
Prevent Directory Listings
Most web servers are configured to automatically find an index file in every web site directory. Your web host may use a global configuration setting that allows the listing of all files in all directories. If you type the URL http://www.wiscocomputing.com, the page that is actually displayed is http://www.wiscocomputing.com/index.htm. If your web site has a cgi-bin directory, and your web host has directory browsing enabled, you have a potential security nightmare. If a hacker enters http://www.yourdomain.com/cgi-bin/ , and the web server can not find an index page in the cgi-bin directory, all of your executable cgi scripts will be listed. If you have a folder of images in a directory that doesn’t have a default file (index.htm), it could also be browsed. Placing an index.htm file in all subdirectories that you want to protect from these hackers and snoops is one way to stop directory listings. Adding the following command to your .htaccess file located in your root directory is another way to prevent directory browsing:
IndexIgnore *
Je viens de testé:
Ca fonctionne pour moi, voici ce qui s’affiche:
Index of /wp-admin/css
Name Last modified Size Description
Je trouve vraiment curieux que tes fichiers aient disparu. Es-tu sûr de ne pas commettre une fausse manipulation ?
Le fait d’ajouter une ligne de code dans le fichier caché .htaccess ne supprime en rien le contenu présent sur le http://FTP...
Au pire, ton site est inaccessible et dans ce cas, il suffit de supprimer le fichier bloquant.
je vais réessayer je te tiens au courant
Bon j’ai réessayé votre technique, cette fois tout marche à merveille ! Encore désolé du mal entendu, j’ai du faire une fausse manip, mais ou !?
En tout cas ça rappel une chose, toujours effectuer une sauvegarde de votre BD et une sauvegarde complete du contenu de votre site!
Bonjour
j’ai testé mais je rencontre un problème.
Une fois le code mis, je n’ai plus accès à la page admin.
je suis hébergé chez phpnet.
quelle est la démarche à suivre
Par avance merci
ps : très bonne vidéo
arnaud
Réponse également adressé par mail.
Cette option ne fonctionne que sur les serveurs Apache. En cas de soucis, le mieux est de supprimer la ligne pour revenir à l’état initial.
C’est difficile de fournir une réponse toute prête car cela dépend du serveur.
Comment faire sous serveur phpnet alors
merci pour votre réponse
Le mieux est de poser la question à ton hébergeur qui devrait être en mesure de te répondre.
Merci , vraiment, merci !!!! Cette astuce, est simple direct et FONCTIONNELLE !!!! MERCI 1000 FOIS !!!
Merci pour cette petite astuce simple à mettre en œuvre, et qui fonctionne à merveille ! Ca sécurise un peu plus l’ensemble … même quand on n’a rien à cacher
Le problème n’est pas d’avoir des choses à cacher ou non… mais à éviter que votre site ne serve de porte d’entrée pour en pirater d’autres.
Bonjour,
Avant de faire des bêtises, lol, si je comprends bien: si mon FTP est sur net2ftp car mon hébergeur est OVH, cette astuce ne marchera pas, correct?
ESt-ce OK de créer aussi un accès FTP sur Apache en + alors, pour faire cette manipulation?
Merci
Bon weekend
ps: désolé, tu peux effacer ou oublier mon commentaire, j’ai compris apparemment que mon hébergeur et ftp = ok, apache aussi. merci
Non je laisse tout les commentaires, cela permet à d’autres de progresser.
c’est vrai aussi
Merci chef,