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 :

Se passer de suPHP en conservant la sépération des droits


Sujet :

Apache

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 52
    Points : 57
    Points
    57
    Par défaut Se passer de suPHP en conservant la sépération des droits
    Bonjour,

    je fonctionne actuellement avec suPHP et PHP en CGI. Cela me permet de conserver la séparation des droits utilisateurs (chaque script s'exécute avec les droits du propriétaire) et d'avoir un php.ini par site web. Côté sécurité et côté pratique, c'est super. Mais côté performances, c'est moins top.

    C'est pratique, mais j'aimerais savoir si je peux obtenir cette même sécurité en utilisant PHP en module Apache.Ce serait plus performant et me permettrait d'utiliser le cache d'opcode (impossible avec suPHP).

    Pour le moment, les solutions que je trouve m'ont l'air bien compliquées à mettre en œuvre.


    Je vous remercie par avance de votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 52
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    je me permets un petit up concernant cette question qui me turlupine.

    Pour étayer, je cite cette remarque de d-jo :
    Citation Envoyé par d-jo Voir le message
    Citation Envoyé par Guillaume.G
    Je suis passé du module au php-cgi car, hébergeant plusieurs sites sur mon serveur, je l'utilise en conjonction avec suphp. Cela me permet de cloisonner les sites et d'utiliser des php.ini personnalisés.
    Tu peux obtenir un résultat ~semblable avec mod_php :

    - personnalisation de php avec des php_value, php_flag, php_admin_value dans le virtualhost
    - utilisation d'un utilisateur distinct par site av ec le DocumentRoot dans son /home
    - utilisation des acl (on peut aussi s'en sortir avec les groupes) pour permettre à Apache d'accéder aux fichiers du site et d'écrire dans certains répertoires (~docroot/tmp ~docroot/upload ...).

    Avec cette stratégie tu peux donner à apache un utilisateur sans shell (nodody) ce qui est bien plus sûr à plusieurs niveau. Identification immédiate et verification des fichiers uploadés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    find  ~docroot/img -user nobody | while read f  
    do 
     file $f |grep  -q image || echo "$f n'est pas une image"
    done
    Interdiction d'écrire dans certains répertoires (chmod o-r dir)
    Plus grande difficulté en cas d'exploit a obtenir un shell
    Meilleure facilité d'identification des process (ps -U nobody)
    ...
    J'aimerais comprendre un peu plus en détail la mise en œuvre de ce montage.

    Clairement, j'aimerais comprendre comment faire les choses suivante en utilisant le module mod_php5 :

    1- séparation des droits suivants les sites webs (circonscrire user01 dans siteweb01, user02 dans siteweb02, etc.) ;
    2- Exécuter PHP avec les droit de l'utilisateur propriétaire des scripts ;
    3- Bonus : utiliser un php.ini par site web.

    Merci d'avance

  3. #3
    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 777
    Points
    17 777
    Par défaut
    Citation Envoyé par Guillaume.G Voir le message
    1- séparation des droits suivants les sites webs (circonscrire user01 dans siteweb01, user02 dans siteweb02, etc.) ;
    Les possibilités sont plus que limitées : seule la fonctionnalité open_basedir permet de restreindre les accès fichiers à une(des) partie(s) de l'arborescence.

    Citation Envoyé par Guillaume.G Voir le message
    2- Exécuter PHP avec les droit de l'utilisateur propriétaire des scripts ;
    Impossible avec PHP en tant que module tout est exécuté sous un unique utilisateur : celui sous lequel tourne Apache.

    Citation Envoyé par Guillaume.G Voir le message
    3- Bonus : utiliser un php.ini par site web.
    Une telle fonction n'est pas encore implémentée (cf manuel).

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 52
    Points : 57
    Points
    57
    Par défaut
    Merci julp de ta réponse.

    Mais alors, comment font les hébergeurs pour s'assurer de la bonne séparation des droits et optimiser PHP ? Je pense surtout aux hébergements mutualisés ? Ils utilisent PHP en cgi ?

Discussions similaires

  1. Conserver les couleurs des commentaires en mode présentateur
    Par yann60173 dans le forum Powerpoint
    Réponses: 3
    Dernier message: 28/02/2008, 12h19
  2. Réponses: 1
    Dernier message: 30/01/2008, 16h42
  3. [Castor] Conserver les references des objets
    Par troisj dans le forum Persistance des données
    Réponses: 1
    Dernier message: 01/08/2007, 22h04
  4. conserver l'etat des options de select multiple apres le submit
    Par raul_le_vieux dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 25/07/2007, 15h41
  5. Réponses: 2
    Dernier message: 18/01/2007, 14h37

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