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 :

[Système] include de pseudo frame


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de rougedragon
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut [Système] include de pseudo frame
    Bonjour,
    Dans un post précédent on me dit de ne pas afficher mes pages avec le script suivant
    (j'ai fais simple) . La justification est qu'il ne faut pas mettre de variable avec un include.

    Comment gérer les pseudo-frames autrement ???

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 154
    Par défaut
    il faut que tu concatene ton extension avec ta variable si $page contient juste accueil par exemple

    comme ca tu "colle" accueil a .php ce qui lui permet de trouver ton fichier et de l'inclure correctement.

  3. #3
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Je pense que si on t'a dit ça, c'est pour éviter que tu fasses l'include d'un fichier non prévu pour ça (inclusion de code source arbitraire).
    La variable $page vient d'un formulaire, ou d'une entrée utilisateur, enfin de l'extérieur de ton script, c'est ça ? Dans ce cas il faut vérifier qu'elle a bien une des valeurs attendue, et si ce n'est pas le cas tu renvoies une erreur. Mais ne fais jamais un include directement avec un nom de fichier qui vient d'on ne sait pas où.
    [EDIT : c'est en gros ce que fait segfault en-dessous]

    Désolé si jamais j'ai répondu à côté

  4. #4
    Membre éclairé
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Par défaut
    le fait d'ajouter .php à ta variable est déja pas mal, mais tu peux faire mieux genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    switch($page)
      	{
      		case "home":
    			$page = 'home.html';
    			break;
    		case "toto":
    			$page = 'titi.php';
    			break;
    		default:
    			$page = 'home.html';
    			break;
      	}
    bein dans default, soit tu redirige vers une page precise soit tu affiche un truc genre "c'est raté, réessaye autre chose"

    EDIT: un conseil de ma part, redirige plutot vers une page, car si tu lui affiches un message enervant et il se trouve que cette personne est douée, tu peux dire bye bye à ton site

  5. #5
    Membre confirmé Avatar de rougedragon
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    j'appelle mes pages bêtement par: <a ... tete.php?link=specialteam...

    je pensais être couvert par ça en fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     $filename = "./$link.include.php";
      if(file_exists($filename))
      {
       include($filename);
    }
    else
    {
    echo 'VOUS NE POUVEZ PAS AFFICHER CETTE PAGE';
    }
    ?>
    sachant que pour brouiller un peu , je peux mettre tarte à la place de inc.
    Qu'en pensez vous ??
    (ce que propose Halukard en fait- j'avais pas lu)

  6. #6
    Membre expérimenté
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 215
    Par défaut
    Salut,

    imagine je fais entrer dans ta variable $link

    "http://monserveur/hack"
    (sachant que j'ai un fichier qui se nomme hack.include.php)

    on appelle cela des attaques XSS,

    tu devrais faire attention avec ça ...
    élabore toi un front-controller plus performant, c'est la dessus que repose ton appli.

  7. #7
    Membre confirmé Avatar de rougedragon
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    J'ai déjà eu cette réponse. Mais je peux très bien mettre
    Je me dis que si le mec devine l'extension utilisée, j'ai d'autre soucis à me faire.

    Je vais me renseigner plus sur les attaques XSS. ( je suis pointilleux dans la réponse cherchée mais pas borné).

  8. #8
    Membre émérite Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Par défaut
    Un simple switch fait l'affaire question securité
    Ou sinon la methode du fil_exist (la mienne )
    Voila

  9. #9
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par Elwyn
    Un simple switch fait l'affaire question securité
    Ou sinon la methode du fil_exist (la mienne )
    Voila
    Le switch est une NECESSITE (mise en place d'une liste blanche).
    Le file_exists ne suffit pas. Imagine, je te fais ouvrir un fichier sur mon serveur, qui génère du php (genre du code sympa, avec des "exec" de "rm *" par exemple... Non, il ne faut pas se dire que la config de ton serveur va l'empêcher : il y a une infinité d'attaques possibles si on peut faire exécuter du code arbitraire), eh bien le file_exists, il va te dire "oui oui, le fichier existe bien", et puis tu vas l'inclure gentiment... et mon code, il va te vider le disque dur de ton ordinateur, si t'as pas fait gaffe...

    sahid : Non c'est pas du XSS, c'est de l'injection de code.

    rougedragon : le fait de supposer que l'attaquant ignore les extensions ou les modifs que l'on va faire sur le nom est une MAUVAISE METHODE. D'une manière générale il est dangereux de considérer que l'attaquant manque d'information ou est stupide.

  10. #10
    Membre confirmé Avatar de rougedragon
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    Merci pour vos réponses.

    ça m'aide beaucoup.

    A+

  11. #11
    Membre expérimenté
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 215
    Par défaut
    Citation Envoyé par rougedragon
    J'ai déjà eu cette réponse. Mais je peux très bien mettre
    Je me dis que si le mec devine l'extension utilisée, j'ai d'autre soucis à me faire.

    Je vais me renseigner plus sur les attaques XSS. ( je suis pointilleux dans la réponse cherchée mais pas borné).

    oui oui, m'enfin ...
    $link = 'http://monsite/hack.php");'

    Eusebius : de l'injection de code c'est de XSS...

    ensuite le switch n'est pas une néccesité, tu peux tres bien utiliser les interfaces. ...basé toute ton application sur un switch c quand meme limité question evolution, et asser lourd.

  12. #12
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par sahid
    Eusebius : de l'injection de code c'est de XSS...
    Non, mais passons.

    Citation Envoyé par sahid
    ensuite le switch n'est pas une néccesité
    C'est vrai. Je parlais du choix entre le switch et le file_exists. On peut faire sans switch si on a un autre mécanisme de type liste blanche.

  13. #13
    Membre émérite Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Par défaut
    Citation Envoyé par Eusebius
    Le file_exists ne suffit pas. Imagine, je te fais ouvrir un fichier sur mon serveur, qui génère du php (genre du code sympa, avec des "exec" de "rm *" par exemple...
    Faux !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $page = $_GET['page'];
     
    if(file_exists($page)){
    include($page.'.php');
    }
    else{
    echo'Erreur';
    }
    dis moi comment executer tes fichier exe et tout le reste stp

  14. #14
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par Elwyn
    dis moi comment executer tes fichier exe et tout le reste stp
    Je me trompe peut-être, mais je vois pas en quoi ce que tu fais te protège contre un include distant.

  15. #15
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $page ='Prefixe_'.$_GET['page'];
     
    if(file_exists($page)){
    include($page.'.php');
    }
    else{
    $page = 'Accueil'
    include($page.'.php');
    }
    un truc de ce genre aussi c est sympa ....
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  16. #16
    Membre émérite Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Par défaut
    Citation Envoyé par Eusebius
    Je me trompe peut-être, mais je vois pas en quoi ce que tu fais te protège contre un include distant.
    Trouve moi un exemple d'include distant

  17. #17
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par Elwyn
    Trouve moi un exemple d'include distant
    Si allow_url_fopen est activé, on peut en faire, des includes distants.

  18. #18
    Membre émérite Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Par défaut
    Avec mon script tu ne pourras ouvrir que les pages presentes dans l'arborescence
    Et je ne parle pas d'execution mais d'insertion

  19. #19
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par Elwyn
    Avec mon script tu ne pourras ouvrir que les pages presentes dans l'arborescence
    Ah j'avais pas vu le préfixe. Oui, tu donnes le moyen de parcourir librement toute ton arborescence. Ca reste une faille.

    Et c'est pas le file_exists qui augmente le niveau de sécurité, c'est le préfixe.
    J'ai raison, donc j'ai raison

  20. #20
    Membre expérimenté
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 215
    Par défaut
    par contre dans l'etat actuelle de ton script, il me semble que dans tout les cas, ton file_existe te retourne false ...


    m'enfin je peux me trompé

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Include pseudo-frame sur ma page
    Par karamaster dans le forum Langage
    Réponses: 2
    Dernier message: 02/01/2014, 10h05
  2. [Système] Solution meilleur que les pseudo-frames
    Par paradeofphp dans le forum Langage
    Réponses: 4
    Dernier message: 05/09/2006, 17h46
  3. Pseudo-frame et index
    Par MYster dans le forum Langage
    Réponses: 3
    Dernier message: 09/11/2005, 18h48
  4. Pseudo frames
    Par virtuadrack dans le forum Langage
    Réponses: 9
    Dernier message: 23/10/2005, 14h23
  5. [Système] question bete sur les pseudo frames
    Par balou dans le forum Langage
    Réponses: 5
    Dernier message: 12/10/2005, 13h11

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