Améliorer la sécurité de Pluxml
bazooka07
PluXml Lead Developer, Moderator
Bonjour,
Le dossier core/lib contient un certain nombre de scripts php appelés par d'autres scripts php.
Ils n'ont donc pas à être accessibles depuis un navigateur Web.
Un fichier .htaccess comme ceci règle ce problème :
Une solution facile est de créer un dossier core/js pour y déplacer tous les scripts javascripts et fichiers .txt.
Il suffit ensuite de corriger l'emplacement de ces scripts pour les scripts de core/admin.
On a un problème un peu similaire avec le fichier plain text "version" situé à la racine du site.
Un emplacement plus approprié serait aussi core/lib.
Le même fichier .htaccess ci-dessus peut également être placé dans le dossier data/configuration.
Il n'est pas nécessaire qu'un navigateur est accès aux données de ce dossier donc on bride avec ce fichier .htaccess.
Une fois le site installé, ce fichier version n'est lu que par les scripts contenus dans core/lib :
Il suffit de remplacer PLX_ROOT.'version' par PLX_CORE.'lib/version', une fois le fichier déplacé.
Idem dans install.php et dans update/*.php
Le dossier core/lib contient un certain nombre de scripts php appelés par d'autres scripts php.
Ils n'ont donc pas à être accessibles depuis un navigateur Web.
Un fichier .htaccess comme ceci règle ce problème :
[== Indéfini ==]
Order Deny,Allow
Deny from All
Options -Indexes
Sauf que dans ce dossier, il y a quelques scripts javascript nécessaires à l'administration du site.Une solution facile est de créer un dossier core/js pour y déplacer tous les scripts javascripts et fichiers .txt.
Il suffit ensuite de corriger l'emplacement de ces scripts pour les scripts de core/admin.
On a un problème un peu similaire avec le fichier plain text "version" situé à la racine du site.
Un emplacement plus approprié serait aussi core/lib.
Le même fichier .htaccess ci-dessus peut également être placé dans le dossier data/configuration.
Il n'est pas nécessaire qu'un navigateur est accès aux données de ce dossier donc on bride avec ce fichier .htaccess.
Une fois le site installé, ce fichier version n'est lu que par les scripts contenus dans core/lib :
[== Indéfini ==]
toto@twintech:/home/www/.../temp/PluXml-master$ grep "PLX_ROOT.'version'" core/lib/*.php
core/lib/class.plx.feed.php: if(!is_readable(PLX_ROOT.'version')) {
core/lib/class.plx.feed.php: $f = file(PLX_ROOT.'version');
core/lib/class.plx.motor.php: if(!is_readable(PLX_ROOT.'version')) {
core/lib/class.plx.motor.php: $f = file(PLX_ROOT.'version');
Il suffit de remplacer PLX_ROOT.'version' par PLX_CORE.'lib/version', une fois le fichier déplacé.
Idem dans install.php et dans update/*.php
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
à mon grand grand amha, modifier autant de fichiers php ( grep -r "PLX_ROOT.'version'" * ), pourrait être intégré dans une prochaine version, car les futures MAJ ne seraient pas simples (tout le monde n'a pas sed
Protéger les fichiers php du dossier /lib n'améliore pas la sécurité, car les .php ne sont pas lisible dans un navigateur, donc protéger le dossier avec un htaccess c'est juste se faire plaisir. Si leur contenu devenait accessible cela serait un problème avec apache et il y aurait fort à parier que htaccess soit inefficace. Et pour rappel, ceux qui utilise un autre serveur que apache (nginx, lighttpd, hiawatha), .htaccess n'est d'aucune utilité.
Le fichier version est déjà protégé par le .htaccess à la racine, mais j'avoue pour ce coup qu'il sera plus propre de le mettre dans data/configuration et de profiter du .htaccess de ce dossier. Je prend en compte.
Pour le 1er point, même si je ne partage pas forcément l'argumentation, ça ne mange pas de pain, et ça ne peut pas faire de mal
edit: issue #70
/!\ Options -Indexes ne passe pas chez tous les hébergeurs et cause des erreurs 500
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Je vois plus le fichier version dans core/lib que dans data/configuration.
data/configuration étant réservée à la personnalisation du site.
Cordialement
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)