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 :

[Sécurité] Execution des include() sous windows/Linux


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 17
    Points
    17
    Par défaut [Sécurité] Execution des include() sous windows/Linux
    salut, j'ai fais une petite application toute con...
    l'index regroupe deux cadres, un menu a gauche et un contenu a droite
    Ce contenu inclu un premier fichier de librairies. (lib.php) qui contient notament une fonction qui inclut la page demandée en fonction d'une variabl "mode" passé en GET... La seule chose, c'est que sous EasyPHP ou j'ai dévellopé l'application tout tourne bien, mais sous linux je me heurte a un fichier non trouvé...la librairie est trouvée et inclue, mais les fichiers inclus par la librairies ne sont pas trouvée bien que présents physiquement...

    Quelqu'un a t-il une explication ?

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    mais les fichiers inclus par la librairies ne sont pas trouvée bien que présents physiquement
    Qu'est-ce qui te fais dire cela ?


    include_path différents....

    Sinon une solution qu'elle est bonne : développe dorénavant sous linux

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    L'idée est a la fois bonne et pas bonne...
    Le PC est pas tres puissant, et je préfère laisser tourner sans interface graphique. De plus c'est un serveur personnel. Il n'est pas voué a une utilisation bureautique.

    Ce qui me fait dire que les fichiers sont présents physiquement c'est qu'un LS affiche bien les fichiers, mais PHP ne les trouve pas !

    Qu'est-ce que le include_path ?

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    mais PHP ne les trouve pas !
    Qu'est ce qui te fais dire ça ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    file_exists() renvoie false, et le message d'erreur associé Fatal error : aucun fichier ou répertoire

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    On peut voir comment tu utilises la fonction file_exists ?

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 222
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 222
    Points : 8 468
    Points
    8 468
    Billets dans le blog
    17
    Par défaut
    Et puis fais attention à la casse : Win y est insensible, Nux non !

    Fichier MaClasse.class.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include 'maclasse.class.php' ; // OK sous Win, KO sous Nux
    Pareil avec file_exists( ).

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    ben j'ai vérifié pourtant !
    Je vais revérifier ce soir...

    LA question que je me pose en fait est de savoir qui execute le include...
    Est-ce le fichier principal ou le fichier inclus ?

    car si tu veux mon truc j'ai un fichier principal, qui appelle une fonction d'un fichier inclu dans un répertoire fils, et cette fonction inclut un fichier un fichier qui se trouve dans deux sous dossiers en dessous du fichier père... J'ai une hésitatio par raport au path a inclure, je met le chemin depuis le fichier père ou celui a partir duquel j'appele la page ? De toute facon dans les deux cas le fichier n'est pas trouvé :/

    J'espere que tu as tout compris...

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Si toi tu arrives à voir ce que tu as écris, nous c'est un peu plus difficile
    du code ! du code !

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    deux secondes je vous post ca, j'espere que l'un de vous pourra m'aider en testant

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    Telechargement du projet

    J'ai enlevé les cadres, vous avez le projet complet... Testez, votez et éliminez le maillon faible....

    Oui oui... Je sors...

    Sans rire, si vous pouviez m'aider ca m'aiderais pas mal :/

  12. #12
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    possibilités :
    - tu as mis des \ qui ne marchent que sous win => met des / ca marche partout
    - tu n'as pas respecté la casse du nom de fichier (les majuscules et minuscules) => marche sous win mais pas linux donc respecte les ca sera mieux et marchera partout
    - tu as mis un chemin absolu qui commence par c:/ => met des chemins relatifs

  13. #13
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Désolé c'est toi le maillon faible

    Je ne telecharge et ne décompresse pas les fichiers des inconnus (c'est ma maman qui m'a dit) !
    Donc isole le problème (j'ai pas que ça à faire de me palucher tout ton code ) et tu fais un joli copier-coller ici (entre les balises [code]) Et là je verrais

    En plus je sais pas comment décompresser les rar

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    nan nan je n'ai utilisé que des url relatifs... pas de chemins absolus...

    je n'utilise que des / et non des back slashes..

  15. #15
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    c est quoi cette librairie ?
    c est quoi les messages d erreurs ?

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Mr N.
    Désolé c'est toi le maillon faible

    Je ne telecharge et ne décompresse pas les fichiers des inconnus (c'est ma maman qui m'a dit) !
    Donc isole le problème (j'ai pas que ça à faire de me palucher tout ton code ) et tu fais un joli copier-coller ici (entre les balises [code]) Et là je verrais

    En plus je sais pas comment décompresser les rar
    Rho la la ! j'ai mis en archive pour que vous ayez l'arborescence avec !

    mais bon, voila le main.php...

    [code]

    <?php
    // Demarage/initialisation de session
    session_start();
    // Inclusion des librairies
    include_once('./libs/lib_DISPLAY.php');
    // Fin d'inclusion des librairies
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <link rel="stylesheet" type="text/css" href="style.css">
    <script language="javascript" type="text/javascript" src="./forms.js"></script>
    <title>Main interface</title>
    </head>

    <body topmargin="5" leftmargin="5">
    <?php GetPageUrl($_GET['mode']); ?>
    </body>
    </html>

    &#91;/code&#93;

    le lib_DISPLAY.php qui se trouvent dans un sous dossier libs ( en minuscules)
    &#91;code&#93;
    <?php
    // Correspondance catégorie/Fichier à inclure
    function GetPageUrl($Cat)
    {
    switch($Cat)
    {
    case 'main': $FileInfos = array('./FILES/index.php','Accueil') ; break ;
    case 'user': $FileInfos = array('./FILES/USERS/index.php','Gestion des utilisateurs') ; break ;
    case 'profil': $FileInfos = array('./FILES/PROFIL/index.php','Profil administrateur') ; break ;
    case 'infos': $FileInfos = array('./FILES/INFOS/index.php','Suivi d\'exploitation'); break ;
    case 'options': $FileInfos = array('./FILES/OPTIONS/index.php','Options de HSP') ; break ;
    case 'threads': $FileInfos = array('./FILES/THREADS/index.php','Taches à effectuer') ; break ;
    // Erreur 404
    default: $File = './HTDOCS/404.php' ; break;
    }
    ViewPage($FileInfos[0],$FileInfos[1]);
    }
    // Librairie d'affichage
    function ViewPage($PHPFile,$Title)
    {
    echo "<div class=\"MainMenu1\" style=\"width:100%; height:100%; overflow:auto;\">";
    echo "<div class=\"MainMenu2\"><p class=\"MenuTitle\">".$Title."</p></div>";
    // Inclusion du fichier nécessaire
    include($PHPFile);
    echo "</div>";
    }
    ?>

    &#91;/code&#93;

    Edit : Pourquoi les balises de codent ne fonctionnent-elles pas ??

  17. #17
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    c est peut etre la sous inclusion qu il faut changer ?

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    Que mettrais-tu ? Moi ca marche sous windows, et la meme chose ne fonctionne pas sous linux !

  19. #19
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    c est peut etre un probleme au niveau des includes que fais ta lib justement.

    tu as regardé comment ils sont fais ?

    quel est le mesage d erreur ?

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    Fatal error, Failed to include ./FILES/USERS/index.php on Line 8 : libs/lib_DISPLAY.php

    un truc de genre.. En tout cas c'est l'include qu'il rejette...

Discussions similaires

  1. comment planifier l'execution des job sous talend
    Par sinoun dans le forum Exécution et industrialisation
    Réponses: 10
    Dernier message: 27/09/2011, 19h13
  2. executer des requêtes sous VBA
    Par 18mar dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/12/2007, 08h59
  3. Comment gérer des reps sous Windows & Linux ?
    Par Sylver--- dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2007, 13h04
  4. Compilation execution des programes sous Linux
    Par saad13121 dans le forum Mandriva / Mageia
    Réponses: 5
    Dernier message: 28/12/2006, 11h12
  5. [Sécurité] Exécution des include()
    Par Thom@s dans le forum Langage
    Réponses: 7
    Dernier message: 21/11/2005, 15h20

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