[PHP] Athentification sur un site

Athentification sur un site [PHP] - PHP - Programmation

Marsh Posté le 30-07-2002 à 09:35:41    

Salut à tous,
 
je suis en train de faire un petit site et je me bats avec php et MySQL.
 
Le site est entièrement privé donc login obligatoire. Par ailleurs, on a deux type de membres : admin et membres normaux.
 
Quelle est la meilleure méthode pour gérer l'authentification des membres ?
 
Pour l'instant, j'en ai repéré deux :
 - Soit j'attribue une session ID aléatoire à chaque connection et un timestamp que je stocke dans ma base SQL : pas de cookie mais une requête pour tester la validité de la session à chaque ouverture de page.
 - Soit je stocke cette information dans le cookie.
 
Quelle est la méthode la moins lourde / plus efficace ?
 
En outre, si je stocke le type de membre dans le cookie, j'ai peur que ce soit un peu trop facile à modifier et donc à changer.
 
Merci de votre aide,


Message édité par latruffe le 30-07-2002 à 10:40:43
Reply

Marsh Posté le 30-07-2002 à 09:35:41   

Reply

Marsh Posté le 30-07-2002 à 09:39:09    

latruffe a écrit a écrit :

Salut à tous,
 
je suis en train de faire un petit site et je me bats avec php et MySQL.
 
Le site est entièrement privé donc login obligatoire. Par ailleurs, on a deux type de membres : admin et membres normaux.
 
Quelle est la meilleure méthode pour gérer l'authentification des membres ?
 
Pour l'instant, j'en ai repéré deux :
 - Soit j'attribue une session ID aléatoire à chaque connection et un timestamp que je stocke dans ma base SQL : pas de cookie mais une requête pour tester la validité de la session à chaque ouverture de page.
 - Soit je stocke cette information dans le cookie.
 
Quelle est la méthode la moins lourde / plus efficace ?
 
En outre, si je stocke le type de membre dans le cookie, j'ai peur que ce soit un peu trop facile à modifier et donc à changer.
 
Merci de votre aide,




 
Ce qui est sûr, c'est que si tu fait une requête SQL à chaque requête HTTP tu risques d'avoir des temps d'accés moyen...
 
Utilise tout l'arsenal d'identification http (session id, expiration,...)
 
Lors de la premiere connection du gars, tu le valides avec ta BD.  
Ensuite, tu joue avec le session id et l'expiration de la session.

Reply

Marsh Posté le 30-07-2002 à 09:49:28    

therier a écrit a écrit :

 
 
Ce qui est sûr, c'est que si tu fait une requête SQL à chaque requête HTTP tu risques d'avoir des temps d'accés moyen...
 
Utilise tout l'arsenal d'identification http (session id, expiration,...)
 
Lors de la premiere connection du gars, tu le valides avec ta BD.  
Ensuite, [g]tu joue avec le session id et l'expiration de la session[g].




 
Tu pourrais être plus précis ?
 
En fait actuellement, à chaque login, dans ma table user je stocke la session id en cours et l'expiration.
A chaque chargement de page, j'ai une vérification de ces deux paramètre + un mise à jour de l'expiration.
 
Tu suggères que session id et expiration soient dans un cookie mais alors quid des droits d'accès de chaque utilisateur ?

Reply

Marsh Posté le 30-07-2002 à 10:50:35    

Tu les stockes dans le cookie. C'est le cookie qui expire, tu n'as pas a stocker de date dans ta bd. Utilise la session HTTP.
Suis je clair?  :D

Reply

Marsh Posté le 30-07-2002 à 11:37:07    

therier a écrit a écrit :

Tu les stockes dans le cookie. C'est le cookie qui expire, tu n'as pas a stocker de date dans ta bd. Utilise la session HTTP.
Suis je clair?  :D  




 
Très clair et je te remercie d'avoir répondu.
 
Pour ce qui est du "niveau" de l'utilisateur, tu suggères donc de le stocker aussi dans le cookie (facile à modifier) ou de le vérifier directement dans la base en utilisant les informations contenues dans le cookie ?
 
Sinon je fais aussi jeter un coup d'oeil dans les sessions php4...

Reply

Marsh Posté le 30-07-2002 à 11:50:37    

latruffe a écrit a écrit :

 
 
Tu pourrais être plus précis ?
 
En fait actuellement, à chaque login, dans ma table user je stocke la session id en cours et l'expiration.
A chaque chargement de page, j'ai une vérification de ces deux paramètre + un mise à jour de l'expiration.




 
c'est classique, bcp le font (moi compris)...
La seule différence est que je ne fais pas de mise à jour de l'expiration.  L'utilisateur choisi la durée de connexion, une fois celle-ci terminée, il est déconnecté.
Tu peux également proposer une identification infinie/automatique avec login/pwd dans un cookie.
 
c'est clair que ça fait min 1 query par requête http, mais c pas la mort...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed