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

Langage PHP Discussion :

[FTP] Limiter l'utilisation de PHP


Sujet :

Langage PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut [FTP] Limiter l'utilisation de PHP
    Bonjour,

    Je souhaiterai limiter les fonctions de php dans un répertoire spécifique.
    Est ce possible ? Comment ?

    Le but est de pouvoir donner un accès sur un répertoire bien spécifique à une personne afin de modifier un template. Il y a seulement quelques echo et include.
    Je ne souhaite pas que cette personne puisse récupérer le code source du script , des valeurs de variables ou encore exécuter un code arbitraire.

    Puis je faire cela simplement, sans moteur de template ?

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut


    Je comprends pas tout, mais on ne peut pas recuperer un programme en PHP


  3. #3
    Membre habitué
    Inscrit en
    Février 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 192
    Points : 198
    Points
    198
    Par défaut
    Salut,

    Une idée toute simple : mettre le template dans un répertoire à part, quitte à faire un lien ailleurs pour que le reste du site y accède avec le chemin habituel (à condition d'être sous Unix/Linux, mais un site web devrait toujours être sur ce type de systèmes ^^), et tu te débrouilles pour que l'utilisateur n'est accès qu'à ce répertoire (via ftp par exemple).

    Comme ça, aucun risque qu'il récupère le code, puisque le code n'y sera pas.

    Quant à l'execution possible de scripts qu'il rajouterai dans ce répertoire, il te suffira de choisir un répertoire hors d'accès d'Apache (IIS n'existe pas de toute façon :p).

    Cordialement,

    Mathias, fan d'Unix.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Il me semle que sous Unix tu peux restrindre l'acces au fichiers (appliquer des droits) et créér des liens symboliques. Pour que la personne ne puisse pas récupérer le code ya qu'à interdire la modification, la lecture, mais pas l'execution.

  5. #5
    Membre habitué
    Inscrit en
    Février 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 192
    Points : 198
    Points
    198
    Par défaut
    l'utilisateur ne peut pas exécuter directement le script (à moins de lui offrir un shell distant, mais bon faudrait être suicidaire ^^) ce sera donc le job d'apache.

    étant donné que l'utilisateur doit pouvoir écrire dans un fichier, il pourra le renommer, parce que renommer c'est écrire, c'est comme ça, donc il pourra virer le template pour y mettre un script php, et renommer son fichier en .php qui sera alors exécutable par apache (qui lui se contrefout des droits d'exécution des fichiers).

    donc on en revient à la solution proposée au début.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Citation Envoyé par novices Voir le message
    l'utilisateur ne peut pas exécuter directement le script (à moins de lui offrir un shell distant, mais bon faudrait être suicidaire ^^) ce sera donc le job d'apache.

    étant donné que l'utilisateur doit pouvoir écrire dans un fichier, il pourra le renommer, parce que renommer c'est écrire, c'est comme ça, donc il pourra virer le template pour y mettre un script php, et renommer son fichier en .php qui sera alors exécutable par apache (qui lui se contrefout des droits d'exécution des fichiers).

    donc on en revient à la solution proposée au début.
    Bon, en clair ce que tu veux c'est créer un répértoire dans lequel les fichiers .php ne s'executent pas.
    C'est bien ça?

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Non, je voudrais que php s'exécute mais que des fonctions que j'aurais approuvé. Avec ce que j'ai vu ici, cela me semble complexe ou pas assez sûr ou fiable.

    Actuellement je pense partir là-dessus :
    Je donne un accès FTP au bon répertoire, et je gère les droits au niveau Unix pour que l'utilisateur ftp ne puisse modifier que le fichier nommé "template.html"
    Dans ce fichier template, pas de php, mais des balises perso type **ma_variable**.
    Ensuite je parse ce fichier en php pour remplacer les **ma_variable** par l'équivalent en php.

  8. #8
    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
    Il y a différents moyens suivant comment est appelé ce fichier (direct ou non) :
    • utiliser une extension PHP telle que suhosin pour bloquer/autoriser certaines fonctions (dans un contexte d'évaluation dynamique - fonction eval - ou non - les deux sont possibles) voir plus simplement utiliser la possibilité d'interdire certaines fonctions en jouant sur la directive de configuration disable_functions et que vous pouvez redéfinir de manière locale par fichier htaccess (implique l'utilisation de PHP comme module Apache)
    • compter sur la façon dont sont (ou non) interprétés ces templates : du fait que l'interprétation d'un script est réalisée sur son extension, tout ne sera pas interprété par le serveur. Si vous utilisez des inclusions (require/include) directement ce sera en effet potentiellement dangereux mais les vrais systèmes de templates se basent généralement sur des expressions régulières pour les transformations (ça limite les possibilités et le(s) designer(s) n'ont ainsi pas besoin de connaître le langage PHP).

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Citation Envoyé par max-mag Voir le message
    Non, je voudrais que php s'exécute mais que des fonctions que j'aurais approuvé. Avec ce que j'ai vu ici, cela me semble complexe ou pas assez sûr ou fiable.

    Actuellement je pense partir là-dessus :
    Je donne un accès FTP au bon répertoire, et je gère les droits au niveau Unix pour que l'utilisateur ftp ne puisse modifier que le fichier nommé "template.html"
    Dans ce fichier template, pas de php, mais des balises perso type **ma_variable**.
    Ensuite je parse ce fichier en php pour remplacer les **ma_variable** par l'équivalent en php.
    Donc tu veux par exemple que les fonctions tel que include et echo et pas par exemple if for etc. ?

    Si c'est ça dans ce cas là je te conseille de créer un script qui va uploader ton fichier et puis va l'analyser pour absence de mots interdits.

Discussions similaires

  1. Utiliser plusieurs php.ini
    Par Wookai dans le forum Apache
    Réponses: 2
    Dernier message: 21/03/2008, 05h10
  2. Réponses: 4
    Dernier message: 16/02/2006, 16h28
  3. [FTP] Erreur d'utilisation de require_once
    Par dialydany dans le forum Langage
    Réponses: 14
    Dernier message: 06/11/2005, 17h46
  4. Date à utiliser en php
    Par benny7 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 31/08/2005, 11h16
  5. [Info] limiter l'utilisation d'un soft à une machine
    Par bigboomshakala dans le forum C++
    Réponses: 6
    Dernier message: 17/02/2005, 12h11

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