IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Protéger un XML de configuration


Sujet :

Apache

  1. #1
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut Protéger un XML de configuration
    Bonsoir à tous

    Je me pose la question du comment protéger au mieux le répertoire "biblioteque" et particulièrement le fichier "config.xml".

    Je suis sur un mutualisé, est j'ai une arborescence similaire à celle ci :

    - web/EspaceRoot/www [domaine principale : www.domaine.com]
    - web/EspaceRoot/adminDuwww/ [Un alias : admin.domaine.com]
    - web/EspaceRoot/biblioteque/config.xml [Des config]
    - web/EspaceRoot/biblioteque/classes/Bdd.php [Des classes communes au : www et admin]

    Je n'ai rien mis dans le "EspaceRoot", donc aucun htaccess. En faudrait il un ? Et avec quoi ?
    J'ai placé un .htaccess dans le "biblioteque" avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Files *.php>
    	Order Deny,Allow
    	Deny from all
    </Files>
     
    # Protèger un fichier en particulier
    <Files config.xml">
    	Order deny,allow
    	Deny from all
    </Files>
    Le config.xml a un chmod de 0444 (donc en lecture seule).
    Est ce suffisant (Le htacces + 0444) ? surtout pour le config.xml ?

    A savoir que ce config.xml est lu par un code php dans les 2 domaines/alias pour générer des constantes.

    D'après ce que j'ai pu lire à droite et à gauche, c'est que sur un mutualisé, tous fichier placé en dehors d'un domaine (donc www et adminDuwww) serait d'office protégé.
    Est ce vrai ? Je ne suis pas parvenu à savoir à quel niveau.

    Aussi, et toujours sur un mutualisé, les fichiers .htaccess et .ini sont particulièrement protégés.
    Si cela est vrai, y a t-il un moyen d'obtenir le même niveau de protection sur le config.xml ?

    Le but est de pouvoir garantir que l'accès au config.xml ne soit possible par quiconque, à par être lu par un code php (et via FTP par login/pass évidemment).


    Merci à vous

    (Je ne suis pas sûr d'être dans le bon forum. Désolé si ce n'est pas le cas)
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Je n'ai rien mis dans le "EspaceRoot", donc aucun htaccess. En faudrait il un ? Et avec quoi ?
    A priori [si j'ai compris la structure], non, puisque vous allez, sinon, bloquer vos sites.

    Citation Envoyé par RunCodePhp Voir le message
    J'ai placé un .htaccess dans le "biblioteque" avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Files *.php>
    	Order Deny,Allow
    	Deny from all
    </Files>
     
    # Protèger un fichier en particulier
    <Files config.xml">
    	Order deny,allow
    	Deny from all
    </Files>
    Le config.xml a un chmod de 0444 (donc en lecture seule).
    Est ce suffisant (Le htacces + 0444) ? surtout pour le config.xml ?
    Ça dépend de la configuration du système/Apache/PHP : qui fonctionne sous quel utilisateur surtout, parce que théoriquement Apache ne devrait pas justement avoir besoin d'un droit de lecture dessus [chose impossible à réaliser suivant le mode de fonctionnement du couple PHP/Apache]. Mais le .htaccess aurait probablement pu être plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Deny from all
    Satisfy All
    Citation Envoyé par RunCodePhp Voir le message
    D'après ce que j'ai pu lire à droite et à gauche, c'est que sur un mutualisé, tous fichier placé en dehors d'un domaine (donc www et adminDuwww) serait d'office protégé.
    Est ce vrai ? Je ne suis pas parvenu à savoir à quel niveau.
    Tout dépend déjà à quel niveau on parle. S'il s'agit d'un accès par HTTP, oui, c'est le cas avec une configuration d'Apache par défaut et tout administrateur censé devrait y prêter attention. S'il s'agit d'un accès par le système de fichier, c'est encore une autre histoire : question de droits/utilisateurs, dépend du mode de fonctionnement de PHP et de sa configuration (open_basedir configuré ou non).

    Niveau configuration d'Apache, c'est essentiellement question de Directory et Allow/Deny.

    Citation Envoyé par RunCodePhp Voir le message
    Aussi, et toujours sur un mutualisé, les fichiers .htaccess et .ini sont particulièrement protégés.
    Si cela est vrai, y a t-il un moyen d'obtenir le même niveau de protection sur le config.xml ?
    Non, c'est purement lié à la configuration du serveur : les fichiers commençant par .ht sont normalement protégés avec une configuration par défaut d'un accès direct par HTTP. Tout le reste (les .ht* y compris, puisque ça se change) n'est qu'au bon vouloir de l'administrateur.

    Le plus sage reste tout de même de placer tout fichier qui n'a pas à être accessible en HTTP hors du DocumentRoot.

  3. #3
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Merci pour les précisions.

    A priori [si j'ai compris la structure], non, puisque vous allez, sinon, bloquer vos sites.
    J'avais essayé, et effectivement ça bloquait tout.

    Ça dépend de la configuration du système/Apache/PHP : qui fonctionne sous quel utilisateur surtout, parce que théoriquement Apache ne devrait pas justement avoir besoin d'un droit de lecture dessus [chose impossible à réaliser suivant le mode de fonctionnement du couple PHP/Apache]
    Et bien là, je ne saisie pas vraiment, je ne vois pas ce que tu veux dire par "mode de fonctionnement du couple Php/Apache".
    En tout cas, pour les .htaccess je parviens à leur définir un chmod, et pour les htaccess tout comme le config.xml, j'ai mis 0444.


    Le plus sage reste tout de même de placer tout fichier qui n'a pas à être accessible en HTTP hors du DocumentRoot.
    On est d'accord, dans mon espace je n'est que 2 documentRoots :
    Le www qui est le domaine principale -> www.domaine.com
    Le adminDuwww qui est un sous-domaine -> admin.domaine.com

    Le config.xml étant placé dans le "bibliotheque", il se trouve donc en dehors des 2 documentsRoot ci-dessus.
    Il n'y a aucun virtualhost concernant le "bibliotheque", donc théoriquement personne ne pourra y accéder, pas via HTTP en tout cas.

    Au final, on peu dire que l'organisation et la sécurisation est correcte, surtout pour le config.xml qui est l'élément le plus sensible.

    Merci encore
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Et bien là, je ne saisie pas vraiment, je ne vois pas ce que tu veux dire par "mode de fonctionnement du couple Php/Apache".
    En tout cas, pour les .htaccess je parviens à leur définir un chmod, et pour les htaccess tout comme le config.xml, j'ai mis 0444.
    Il y a des configurations où Apache et PHP ne fonctionnent pas sous le même utilisateur, ce qui permet d'attribuer des droits plus "cohérents" donc retirer le droit de lecture à Apache sur ce qu'on ne serait pas censé accéder via HTTP.

    Citation Envoyé par RunCodePhp Voir le message
    On est d'accord, dans mon espace je n'est que 2 documentRoots :
    Le www qui est le domaine principale -> www.domaine.com
    Le adminDuwww qui est un sous-domaine -> admin.domaine.com
    Au temps pour moi, le nom EspaceRoot m'avait induit en erreur. Toutefois, il faut tout de même être certain de la façon dont son espace est accessible : les hébergeurs proposent souvent un autre moyen d'accès que vos VH (solution de secours par rapport au DNS notamment). Là rien à craindre avec un .htaccess en plus, mais il aurait été préférable de mettre ce qui n'a pas à être accessible à un niveau plus haut (au moins) que vos sites plutôt qu'au même.

  5. #5
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Il y a des configurations où Apache et PHP ne fonctionnent pas sous le même utilisateur, ce qui permet d'attribuer des droits plus "cohérents" donc retirer le droit de lecture à Apache sur ce qu'on ne serait pas censé accéder via HTTP.
    D'accord, je vois mieux.

    Au temps pour moi, le nom EspaceRoot m'avait induit en erreur. Toutefois, il faut tout de même être certain de la façon dont son espace est accessible : les hébergeurs proposent souvent un autre moyen d'accès que vos VH (solution de secours par rapport au DNS notamment). Là rien à craindre avec un .htaccess en plus, mais il aurait été préférable de mettre ce qui n'a pas à être accessible à un niveau plus haut (au moins) que vos sites plutôt qu'au même.
    Etant sur un mutualisé, je n'est pas le choix, je ne peux pas accéder au de-là du "EspaceRoot".
    Impossible d'aller au niveau du répertoire "web" par exemple.
    Le nom "EspaceRoot" n'est peut être pas très bien choisi ici, mais c'est dans celui ci que débute mon espace d'hébergement. Il représente pour moi la racine, le point d'entrée, le "root" de cet espace.


    Tout ça à l'air correcte, donc résolu.

    Grand merci pour toutes ces précisions
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/04/2011, 07h58
  2. Réponses: 6
    Dernier message: 05/11/2008, 09h23
  3. Ajouter du xml de configuration
    Par Eco dans le forum Struts 1
    Réponses: 4
    Dernier message: 07/03/2007, 17h31
  4. fichier XML pour configurer un générateur de docs XML
    Par nice dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 31/01/2006, 11h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo