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é] Inclure tous les scripts depuis index.php = bien ou pas ?


Sujet :

Langage PHP

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 223
    Points : 401
    Points
    401
    Par défaut [Sécurité] Inclure tous les scripts depuis index.php = bien ou pas ?
    Pour les 3 sites dynamiques en PHP que j'ai déjà réalisé, j'ai toujours eu un seul point d'entrée depuis l'extérieur, le fichier index.php. Je me chargeais ensuite d'inclure les fichiers nécessaires selon les paramètres passé par l'URL.

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    www.monsite.com/?page=contact
    plutôt que
    www.monsite.com/contact.php
    En général je place mes "sous pages" du style contact.php dans un répertoire protégé par un .htaccess de façon à ce qu'elles ne soient pas accessibles hors du index.php. J'ai toujours trouvé cette technique pratique, le point d'entrée unique me permet de faire à un seul endroit toutes les vérifications (sécurité) et toutes les inclusions nécessaires.

    Mais voilà, je suis en train de refaire de A à Z l'un de mes sites et je me pose des tas de questions philosophiques. Je remarque surtout qu'aucune application PHP open sources que je consulte ne fonctionne de cette façon.

    Il y a peut être des raisons, vous avez des idées ?
    référencement ? optimisation ? ... etc

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 69
    Points : 80
    Points
    80
    Par défaut
    à ce compte là, tu peux utiliser de l'url rewriting pour renvoyer toutes tes pages vers index.php et traiter la demande dans cette page là.


    exemple dans apache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    # on démarre l'url rewriting
    RewriteEngine on
    # on renvoi tout sauf javascript, images, flash, etc vers index.php
    RewriteRule !\.(js|gif|jpg|png|css|swf)$ index.php [L]

    ps : tu peux recuperer l'adresse demandé avec :
    - $_SERVER['REDIRECT_URL']
    - $_SERVER['REQUEST_URI']


    à toi de faire les tests nécessaires...

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 223
    Points : 401
    Points
    401
    Par défaut
    Merci pour la réponse parksto, mais en fait si je parlais de référencement c'était uniquement une hypothèse de ma part concernant le fait que pratiquement aucune applications PHP connue n'a un point d'entré unique. Avec l'url rewriting je sais que je n'ai pas de soucis à me faire pour le référencement.

    Donc je me pose encore la question. Un point d'entrée unique m'oblige à faire des "include" conditionnels (inclure telle ou telle page selon les paramètres transmis). Est ce que cela ne perturberait pas la précompilation et la mise en cache par le serveur PHP, générant une surconsommation de ressources ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Tout dépend de ce que tu inclues et de combien de ressources tu disposes...

    Généralement, il en faut quand meme pour perturber le traitement d'une page a cause des "include".

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 69
    Points : 80
    Points
    80
    Par défaut
    je n'ai pas beaucoup d'exemple sous la main (je n'utilise quasiment jamais les applications PHP connues, j'ai pour habitude de tout faire moi même), mais je sais que sfm à un point d'entrée unique.

    tous mes sites, et applications php ont un point d'entré unique avec pas mal de fichiers inclus (des classes) dans le contrôleur principal, et les temps de génération n'ont rien à envier aux "grosse" applications.


    mes fichiers index.php ressemblent à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    require_once 'include/OF/OliControleur.php';
    OliControleur::setLibDir(dirname(__FILE__).'/../lib/');
    OliControleur::run('MonApplication');

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 223
    Points : 401
    Points
    401
    Par défaut
    Merci pour vos avis, je vais donc continuer à fonctionner avec mon index.php comme point d'entrée unique.

  7. #7
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Points : 2 399
    Points
    2 399
    Par défaut
    La meilleure façon de faire est de découpé ton index.php en 2 parties (head.php et foot.php)

    Et ensuite en début et en fin de chacune de tes pages tu inclus tes 2 fichiers.
    ça permet d'éviter d'avoir des url en index.php?page=mapage mais directement mapage.php ce qui est déja bien meilleur pour le référencement.
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Citation Envoyé par Seb33300 Voir le message
    La meilleure façon de faire est de découpé ton index.php en 2 parties (head.php et foot.php)

    Et ensuite en début et en fin de chacune de tes pages tu inclus tes 2 fichiers.
    ça permet d'éviter d'avoir des url en index.php?page=mapage mais directement mapage.php ce qui est déja bien meilleur pour le référencement.
    Oui et non car on peut très bien rewriter (ce qui de toutes facons est nécessaire dans la plupart des cas) et rendre donc le système de fichiers du site très opaque.

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    L'essentiel, c'est que tu traites bien les éléments de la requête pour ne pas permettre une inclusion malveillante

    ex : http://www.monsite.com/index.php?pag...e.com/hack.dtc
    Most Valued Pas mvp

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/06/2008, 14h57
  2. Inclure tous les fichiers à la compilation
    Par nicolasss dans le forum Maven
    Réponses: 3
    Dernier message: 16/05/2008, 22h33
  3. Générer tous les scripts de création de tables
    Par farenheiit dans le forum Administration
    Réponses: 5
    Dernier message: 03/08/2007, 11h05
  4. coché tous les checkbox généré par php
    Par Henry9 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/07/2007, 13h13
  5. [Forum] Des erreurs avec tous les scripts PHP
    Par sensoo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 25/04/2006, 18h41

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