Re: [LA-discussions] gestion de session php

[ Thread Index | Date Index | More linuxarverne.org/discussions Archives ]



>Bon reste la question de sécurité, où mettre mon array pour qu'il soit pas
>modifiable par qqun de malintentionné...

Le code source d'un fichier PHP n'est lisible que sur la bécanne qui l'héberge (via la console par exemple).
Tu peux même tes fichiers où bon te semble tant que tu t'y retrouve et reste assez logique (en cas de travail à plusieurs)..

Comme tu n'as pas vraiment besoin des mot de passe ailleurs que sur la page de connexion, personnellement je mettrais tout dans le même fichier "connexion.php" :
- Les couples login/pwd
- Le traitement du formulaire
- Le formulaire HTML

Après c'est à toi de voir...
Si tu fais pas mal de "include/require", il est souvent utilisé 2 méthodes pour éviter le listing et découvrir l'arborescence de ton site :

1ère méthode (simple à mettre en place) est l'utilisation d'une constante
Sur toutes tes pages qui peuvent être affichées (en haut) :

define("RACINE", dirname(__FILE__));

et sur les includes :

if (!defined("RACINE")) {
   header("Location: http://www.monsite.tux/accueil.php");
   exit;
}

Tu peux mettre juste un booléan comme constante mais le chemin de la racine peut-être pratique pour ton code (c'est la méthode utilisé par mal de script complet : phpbb, spip, joomla,...). Ainsi dans n'importe quel fichier php placé n'importe où dans ton arborescence, tu n'as plus à galérer avec les chemins relatifs :

require_once(RACINE."/includes/init.php");

Comme pour tout le reste, tu peux adapter. Exemple : au lieu de faire une redirection vers "accueil.php", on affiche une erreur 404,...



2ème méthode, à mes yeux la plus sûr (utilisé par les frameworks MVC) mais pas toujours simple à mettre en place (sur les serveurs mutualisés)
Le principe est de mettre tous tes fichiers "web" dans un dossier accessible et le reste dans un autre dossier

Exemple arborescence (super simplifié) :
/
------ apps/
------------ config/
------------ logs/
------------ init.php
------------ pwd.php
------ www/
------------ css/
------------ img/
------------ index.php
------------ connexion.php

Avec Apache, tu configures pour que la racine de ton site pointe directement dans "www". Les visiteurs ne peuvent pas accéder aux fichier dans le dossier "apps". Juste à toi de ne pas te planter dans les includes (voir méthode 1)


--

Matthieu


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/