Les dossiers de plug-ins doivent-ils inclure un fichier index.php vierge?

16

WordPress lui-même, dans le wp-contentdossier, comprend un fichier PHP vide qui ressemble à ceci.

<?php
// Silence is golden.
?>

Les plugins devraient-ils également inclure un fichier vide comme celui-ci pour empêcher les gens de voir le contenu d'un répertoire? Qu'en est-il des dossiers supplémentaires dans les thèmes - comme un includesrépertoire?

chrisguitarguy
la source
1
oui, c'est probablement une bonne idée. Je n'ai jamais compris pourquoi WP n'a pas Options –Indexesdans le htaccess fourni, donc ces fichiers ne seraient pas nécessaires ...
onetrickpony

Réponses:

17

Non, ils ne devraient pas. Si un plugin a des vulnérabilités simplement parce que quelqu'un pourrait voir sa structure de répertoire, il est cassé. Ces bogues devraient être corrigés.
La sécurité par l'obscurité est un bug en soi.

Il appartient au propriétaire du site d'autoriser ou d'interdire la navigation dans les répertoires.

Un deuxième problème est la performance: WordPress analyse tous les fichiers PHP dans le répertoire racine d'un plugin pour trouver les en-têtes de plugin. Cela vous permet d'avoir plusieurs plugins sous le même répertoire, par exemple /wp-content/plugins/wpse-examples/.

Cela signifie également que les fichiers PHP inutilisés dans ce répertoire perdent du temps et de la mémoire lorsque WordPress recherche des plugins. Un fichier ne fera pas beaucoup de mal, mais imaginez que cela devient une pratique courante. Vous créez un vrai problème dans le but de réparer une fiction.

fuxia
la source
2
"Il appartient au propriétaire du site d'autoriser ou d'interdire la navigation dans les répertoires." C'est probablement le point clé.
chrisguitarguy
et ma question principale est, pourquoi pas les fichiers de plugin principaux ne sont pas écrits index.php? qui pourrait être une solution de contournement optimale
T.Todua
10

Je vais dire OUI. La sécurité par l'obscurité fonctionne si vous êtes plus obscur que vos voisins :) (plaisantant mais il y a du vrai).

La réalité est que les bots / scanners compilent maintenant les listes de plugins directement sur wordpress.org et explorent directement l'url du plugin, les versions d'empreintes digitales pour les exploits connus et en conservant les informations dans une base de données pour référence.

Alors, lequel préféreriez-vous avoir, un bot ne pouvant pas collecter d'informations sur votre installation, ou laisser le soin à l'auteur du plugin de s'assurer que vous êtes en sécurité. Et les deux.

ps. En passant, 186 exploits de plugins wordpress.org ont été signalés l'année dernière (* rapporté ..).

Wyck
la source
1
Les scanners d'exploit ne testent pas si le plugin existe. Ils essaient d'exécuter l'exploit lors de la première demande. Un vide index.phpne protégerait rien, vous auriez juste un faux sentiment de sécurité.
fuxia
Mais ils le font, wp-scan (l'un des nombreux) empreintes digitales sur plus de 2200 plugins par exemple, et utilise des empreintes digitales décentes pour détecter les versions (taille de fichier, ajouts de fichiers, etc.).
Wyck
J'ai nettoyé des dizaines de sites WordPress piratés. Presque toujours, la première demande était une véritable attaque. C'est tout à fait raisonnable: pourquoi perdre du temps avec une analyse détaillée si vous pouvez tester la vulnérabilité dans la première demande? Suivez vos 404 pour le voir. :)
fuxia
1
Je suis d'accord, cela devrait être à l'utilisateur final et non à l'auteur. Mais je ne pense pas que ça fasse mal non plus. Je voulais juste ajouter un contre-point puisque vous avez dit "non".
Wyck
1
marqué celui-ci comme accepté en raison du débat sur les commentaires!
chrisguitarguy
1

Étant donné que WordPress Core le fait, il est logique que les plugins suivent. Bien que tout cela puisse être protégé avec divers paramètres côté serveur, cela ne fait pas de mal d'avoir une valeur par défaut (probablement pourquoi WordPress Core le fait).

BFTrick
la source
0

Comme l'a souligné Fuxia, il y a un inconvénient de performances à avoir un .phpfichier supplémentaire que WordPress pour analyser les plugins. Un index.htmlserait probablement une meilleure option. Bien sûr, la meilleure option serait d'interdire la navigation dans les répertoires via le serveur Web.

Et aussi, la sécurité par l'obscurité n'est pas bonne.

Alex H
la source