Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2006, 13h04   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 7
Points : 2
Points : 2
Par défaut [Cookies] Session.. ou non ?

Bonjour à tous !

Comme vous pouvez le voir je suis un petit nouveau (étudiant en DUT info)... Et comme le veut la tradition, je vais venir vous embêter un peu avec mes petites questions métaphysiques qui ne concernent cependant pas directement le codage. En passant je tiens à remercier les différentes personnes à l'origine des cours et tutoriels du site qui m'ont bien aidé à avancer dans mon projet (qui n'est rien d'autre qu'apprendre l'utilisation du langage php combinée à une base de donnée, dans mon cas MySQL et PL/SQL).

Venons en à ce qui me dérange...

J'ai commencé la création d'un portail dynamique pour m'entrainer, et donc qui n'a pas pour but d'être publié mais plutôt de me servir de base d'étude. Ce portail utilise MySQL comme base de donnée, et ma base en question contient comme je suppose tous les portails une table "Utilisateur" qui contient donc toutes les informations relatives à un utilisateur.
Cette base contient aussi depuis peu une base "Session" que j'ai créé après avoir regardé le tutoriel expliquant que la création d'une session avec la fonction correspondante en php n'est pas sécurisée.
Une utilisation minime de cette fonction fait cependant partie du tutoriel et concerne le stockage du sid qui nous donne accès à la base session, puis à la base utilisateur, à partir de laquelle on récupère les informations dont nous aurons plus tard besoin un peu partout sur le portail.

Ma question est donc la suivante... Est-il vraiment necessaire d'utiliser à un moment la fonction session du php qui ne fait finalement que propager une variable (sid). N'est-il pas plus simple de gérer le sid à partir d'une variable globale qu'on régénererait aléatoirement à chaque connexion de l'utilisateur avec une fonction, pourquoi pas de type random ? La base session est-elle necessaire si l'on ne veut pas necessairement générer un log des connections des utilisateurs... Ne pourrait-on pas se contenter de placer directement le sid dans la base utilisateur dans un tel cas ?

Et enfin, dans une autre optique, le passage en paramètre du $userid dans la fonction openSession n'est-il pas dangereux (j'ai du mal à voir d'où il vient en fait, s'il s'agit d'une variable global ou d'uatre chose... Je n'ai surement pas bien compris et je suis en train de voir que je me mélange les pinceaux) ?

Voila, je crois qu'il n'y a que ça qui m'embete pour le moment (et c'est déjà pas mal remarquez). Merci davance pour vos réponses

Ark

Ps : lien vers le tutoriel en question
Arkinou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2006, 14h51   #2
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 797
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 797
Points : 1 688
Points : 1 688
Salut,
l'intérêt d'utiliser les session est que le session_start() génère un id aléatoire mais l'envoie également en tant que cookie au client. Si le client a désactivé les cookies et que le paramètre trans.id du fichier de config php.ini est à on, le SID sera transmis par url. Donc c'est à tout à fait possible de recréer ce mécanisme à la main mais il ne suffit pas de générer une variable globale aléatoire.

Normalement dans le tuto à un endroit il doit y avoir la suppression des anciennes sessions en fonction d'un certain délai donc si tu veux sauver le SID dans la table users il faudra également sauver la date de dernière connexion, c'est tout à fait possible, le seul désavantage que je verrais c'est le mélange de données statiques et temporaires, en effet si t'exportes la table users, il y a aucun intérêt d'avoir les derniers SID de chaque utilisateur. C'est quand même plus propre d'avoir 2 tables sur ce coup-là.

Pas de problème pour le passage de $userid, en fait il vient de getLoginCheck(), de la base de données.
Bye
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2006, 18h57   #3
Invité de passage
 
Inscription : novembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 7
Points : 2
Points : 2
Merci, tu m'éclaires bien

Autre question alors, le cookies est-il créé de la même manière lors d'un session_id() ? Parce-que le tutoriel n'utilise justement pas de session_start() à moins que je l'ai loupé mais je ne crois pas (il utilise aussi session_regenerate_id() pour renouveler l'id).
Arkinou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h37.


 
 
 
 
Partenaires

Hébergement Web