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é] Include [Trucs & Astuces]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 46
    Points : 44
    Points
    44
    Par défaut [Sécurité] Include
    Salut,

    J'ai commencer a faire mon site avec des include mais en cherchant un autre truc j'ai lu des sites qui disaient que ce n'est pas forcement sécurisé.

    Alors bon j'ai compris pourquoi par moment c'est pas sécurisé mais j'aimerais savoir ce que vous pouvez me dire concercenant mon script.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    if(!isset($page))
    {
    include("./inc/header.inc.php");
    include("./inc/index.inc.php");
    include("./inc/footer.inc.php");
    }
    else
    {
    if(file_exists("$page.php"))
    {
    include("./inc/header.inc.php");
    include ("./$page.php");
    include("./inc/footer.inc.php");
    }
    else
    {
    include("./inc/header.inc.php");
    echo "La page $page n'existe pas !<br>Veuillez contacter Le webmaster";
    include("./inc/footer.inc.php");
    }
    }
    ?>
    Y a t-il une chance que quelqu'un tape ce qu'il souhaite comme parametre a la place de ma page pour exploiter une faille quelconque ?

    Si oui que dois je faire pour sécurisé ?

    Je débute en PHP et donc j'aimerais éviter les surprises

    Merci d'avance pour vos réponse

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, je ne suis pas expert en sécurité mais j'ai pensé à quelques trucs :

    - si tu fais un include "sauvage" qui va chercher une page saisie par l'utilisateur, à mon avis, c'est pas bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $page = isset($_GET['page']) ? $_GET['page'] : '';
    include($page);
    - personnellement, j'utilise un tableau qui regroupe les pages qui sont "autorisées" à être includées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $mesPages = array(
      'home' => 'home.php',
      'page1' => 'page1/index.php',
      'page2' => 'page2/index.php');
     
      $page = isset($_GET['page']) ? $_GET['page'] : 'home';
     
      if(array_key_exists($page, $mesPages)) include($page);
      else echo 'La page n\'existe pas';
    Voilà, je ne sais pas si cette méthode est la bonne, mais elle supprime au moins une faille (je crois et j'espère)

    Bon développement ;-)

  3. #3
    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
    Je te propose de faire de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $page = $_REQUEST['page']; //A cause de register_globals on/off
    $allowed_pages = array('accueil', 'membres', 'photos', 'articles', ...);
    if (!in_array($page, $allowed_pages)) { //Si la page n'est pas autorisée
       die('Hacking attempt !'); //On lui dit d'aller se faire cuire un oeuf
    }
    ...
    EDIT: je me suis légèrement fait grilled...

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 46
    Points : 44
    Points
    44
    Par défaut
    Ah ouais excellent comme méthode, c'est pas con

    Merci bien les gars !!

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 46
    Points : 44
    Points
    44
    Par défaut
    Merci d'avoir changer le titre du poste effectivement c'est une bonne astuce qui peut servir aux ignares comme moi

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

Discussions similaires

  1. Sécurité de l'include
    Par nasuu dans le forum Langage
    Réponses: 3
    Dernier message: 14/07/2010, 02h00
  2. include et vérification dans un array pour la sécurité
    Par jalex-jalex dans le forum Langage
    Réponses: 3
    Dernier message: 21/11/2008, 11h40
  3. [Sécurité] La faille include
    Par adeltimple dans le forum Langage
    Réponses: 18
    Dernier message: 26/05/2008, 22h43
  4. Réponses: 7
    Dernier message: 12/01/2006, 20h50
  5. Réponses: 4
    Dernier message: 13/12/2005, 10h19

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