|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : août 2005 Messages : 171 ![]() |
Bonjour,
Je fais des sites en php5, et j'ai un module permettant aux administrateurs de s'identifier, et d'avoir accès aux pages d'administration. Cependant, je pouvant raisonnablement pas demander à mes utilisateurs de saisir à nouveau leurs identifiants à chaque changement de page, j'utilise pour le moment une variable de session : $_SESSION['admin_pseudo']. A chaque chargement de page, si cette variable existe, je considère que la personne a les droit d'admin, sinon juste les droits d'utilisateur lambda. Ma question est de savoir s'il est possible de "pirater" une variable de session comme celle-ci, afin par exemple de lui assigner une valeur (et ainsi de se faire passer pour un admin), sans avoir accès à la BDD ou au serveur FTP. Dans ce cas, comment faire pour identifier de façon certaine (ou presque) un admin? utiliser un cookie? Non, ça je sais que c'est encore pire. Vérifier si le nom d'admin existe bien dans la BDD à chaque chargement de page? J'ai peur que ça n'apporte pas grand chose (il est souvent facile de trouver le pseudo de l'admin, surtout s'il l'utilise comme pseudo sur son site), et consomme une requête juste pour cela. S'identifier à chaque page? Bien trop contraignant... Enregistrer en session le mot de passe en plus du pseudo? Je doute que ce soit une bonne chose de faire transiter 36 fois le mot de passe, même crypté... Bref, avez-vous des idées? Merci d'avance pour vos conseils! |
|
|
00
|
|
|
#2 | ||
|
Membre à l'essai
![]() Inscription : avril 2007 Messages : 40 ![]() |
Pourquoi une variable $_SESSION['admin_pseudo'] ? Il faut gérer tes membres par leur ID !!!
Tout simplement tu crées une table membre et une table membre_info par exemple... Dans la table membre tu stock le l'id , le pseudo, le mdp le mail par exemple... Et dans ta table membre_info tu stock un id un id_membre son grade etc... Tu fais une requete sql Code :
SELECT * FROM membre_info WHERE id_membre = "'.$_SESSION['id'].'" Code :
Je trouve que gérer par des nombres c'est plus facile... Pour d'éventuelle modifications... ps: je te dis cela mais je débute en php je commence à peine la poo ... Donc bon j'espère ne pas avoir dis de bétises ^^' |
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : août 2005 Messages : 171 ![]() |
Merci de ta réponse.
Je n'utilise pas les id, car je sais que pour ce qui est des cookies, c'est le pire à faire : si quelqu'un veux avoir accès à l'administration, il lui suffit d'éditer ton cookie, en insérant une valeur dans ta variable nommée "admin_id" (les id étant souvent générées automatiquement, il n'est pas difficile de trouver un id existant). Avec le pseudo, si l'administrateur a un pseudo tordu (et qu'il ne l'utilise pas ailleurs), il serait plus difficile de le trouver. Mais bon, tout cela s'appuie sur l'hypothèse qu'il est possible de modifier le contenu d'un $_SESSION de l'extérieur, et là justement c'est le sujet de mon post PS : je sépare aussi mes tables admin et membre, afin d'alléger un peu mes requêtes SQL : inutile de chercher un admin dans une table de 5000 entrées, alors qu'il n'y a que 2 admin, par exemple |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : avril 2007 Messages : 40 ![]() |
Je ne suis pas du tout d'accord avec c'que tu viens d'écrire
Les sessions sont stockés sur le serveur ! Contrairement au cookie qui sont stockés sur le disque de l'utilisateur... Trier avec un id est donc mieux ! Plus d'info sur la différence session/cookie ici : http://php.developpez.com/cours/sessions/?page=intro (enfin je crois T_T) |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : août 2005 Messages : 171 ![]() |
Sur le principe, je suis 100% d'accord avec toi, sur le fait qu'il est plus logique de stocker un identifiant (moins volumineux, forcément unique, plus pratique pour faire une recherche dans une BDD), et je connais la différence entre cookie et session (c'est pour cela que j'utilise les sessions).
Mais peux-tu m'affirmer de façon certaine que les données contenues dans une session ne peuvent pas être trafiquées, et qu'on peux se fier à elle à coup sûr? Si ta réponse est oui, no problème, je passe un identifiant dans ma session et mon sujet est clos. Mais pour le moment j'ai un doute, et c'est pour cela que je pose ma question ici, où des personnes bien plus expérimentées que moi connaissent probablement la réponse |
|
|
00
|
|
|
#6 | |
|
Membre à l'essai
![]() Inscription : avril 2007 Messages : 40 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : août 2005 Messages : 171 ![]() |
Donc en gros on en est au même point
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com