|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Bonjour,
Il y a eu pas mal de posts sur la manière de déconnecter un utilisateur et le hacker en cas de vol de session. L'idée était donc, si j'avais bien compris, de créer un numéro md5() et de le passer en session, ainsi que dans un cookie. Ce numéro change à chaque page et est updaté dans la session et dans le cookie. Puis à chaque nouvelle page, on compare le numéro dans la session et celui dans le cookie. Si c'est identique, c'est bon, sinon on déconnecte tout le monde: Si un hacker sniffe une session, il récupère certe le md5(), mais lorsqu'il affiche la page, il va créer un cookie qui aura un md5() aléatoire différent de celui dans la session. ==> il est déconnecté. Bon si je me suis pas trompé sur ce qui précède, voyons cela : - Je ne passe mes variables de session que dans des cookies et pas dans les urls (il parait que c'est plus sur). - Je ne peux donc pas passer le md5() en cookie et dans l'url comportant les paramètres de session (paramètres cachées ou non, à priori ça revient au même). - Je dois donc passer le md5() dans un cookie ET dans le cookie de session. Question : Si le pirate sniffe le cookie de session (ou la session ?), a-t'il aussi à porté de main le cookie comportant le md5() ? (j'ai pas beaucoup travaillé avec les sessions encore, alors j'espère que je dis pas des énormités. Le cas échant, veuillez me reprendre)
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#2 | |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Citation:
|
|
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Bein j'en sais rien, y 'a-t'il une différence entre un cookie et un cookie de session ?
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
heu...oui; le cookie de session est stocké sur le serveurs et le cookie "normal" est stocké chez le client ...
|
|
|
00
|
|
|
#5 | |
|
Membre éprouvé
![]() Inscription : février 2005 Messages : 401 ![]() |
Citation:
La différence avec un cookie normal je crois que c'est le "stockage". Le cookie "normal" est enregistré dans un fichier texte tandis que le cookie de session est stocké en mémoire. Je ne suis jamais sur à 100% quand je parle des sessions mais il me semble bien que c'est plutot comme ça que ça marche |
|
|
|
00
|
|
|
#6 | |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Inscription : février 2005 Messages : 401 ![]() |
Mémoire vive par le navigateur client.
|
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
mais alors...quand on fait on fait une requête au client ? ou une copie est stockée sur le serveur ? et à quoi sert le dossier /temp du serveur avec tous ces fichiers sess_<id_de_session> ?
|
|
|
00
|
|
|
#9 |
|
Membre éprouvé
![]() Inscription : février 2005 Messages : 401 ![]() |
En fait, le serveur envoi au client un id de session.
Cet id sera enregistré en mémoire. Et dès que le client va faire une requete au serveur, cet id sera envoyé dans l'entete. Le serveur va donc aller ouvrir le fichier correspondant à cet identifiant dans /temp ou je ne sais trop quel dossier. Et c'est là que seront enregistrées et chargées les valeurs telles que $_SESSION['blabla']. Grossierement c'est ça. Et si c'est pas ça, qu'on me pende haut et court :p |
|
|
00
|
|
|
#10 | |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Citation:
merci pour la leçon,
|
|
|
|
00
|
|
|
#11 |
|
Membre éprouvé
![]() Inscription : février 2005 Messages : 401 ![]() |
Voila
Pour voir ce qui se passe, une bonne solution serait d'afficher l'entete HTTP en début de chaque page sur un site de test. là on verrait vraiment bien ce qui transite pour les cookies et sessions. |
|
|
00
|
|
|
#12 | ||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Ok, je vois que l'on a squaté mon post, tant mieux j'ai lu tout ça c'était bien intéressant.
Comme je suis sans doute le plus nul question session (je les utilise pour la première fois et le site est pas en production), je repose cette question : Les cookies de sessions ne sont pas des cookies normaux, oui ou non ? Je précise que sur mon site j'initialise la session comme suit : Code :
Parce que le but, je le réprécise c'est de faire un test entre un numéro dans le cookie de session, et un numéro dans un autre cookie "normal". Alors si je fais et que le pirate peut indifféremment sniffer et récuperer les deux de la même manière, c'est idiot. Oui je sais je suis pas mal à coté de la plaque dans ce que je dis là, mais ma question a justement pour but d'y voir plus clair.
__________________
C'est pas parce que j'ai tort que vous avez raison. |
||
|
|
00
|
|
|
#13 |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
comme tu peux le voir plus haut, les valeurs des variables des cookies sont chez le client, les valeurs des variables de session sont chez le serveur...donc, on n'y accède pas de la même manière !
|
|
|
00
|
|
|
#14 | ||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
D'accord alors je n'arrive pas à comprendre un point :
Je ne veux pas qu'il y ait d'id de session dans l'url. Donc j'initialise les sessions ainsi : Code :
A quoi sert sinon le $_cookie[session_name] ? A forcer l'id de session dans le cookie chez le client tandis que les variables de sessions restent de toute façon dans le serveur ?
__________________
C'est pas parce que j'ai tort que vous avez raison. |
||
|
|
00
|
|
|
#15 | |||
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#16 | |||
|
Membre éprouvé
![]() Inscription : février 2005 Messages : 401 ![]() |
Citation:
Citation:
Citation:
Tiens un petit truc au passage si ça peut t'aider : sache que le contenu d'un cookie ne sera consultable qu'après rechargement de la page (il faut que le client envoi ce contenu dans l'entete d'une requete ...). |
|||
|
|
00
|
|
|
#17 | |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Citation:
|
|
|
|
00
|
|
|
#18 |
|
Membre éprouvé
![]() Inscription : février 2005 Messages : 401 ![]() |
Ah et bien ok autant pour moi
Je pensais que les 2 mécanismes étaient bien dissociés. Je vais me pendre de ce pas :p |
|
|
00
|
|
|
#19 | ||||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Citation:
Citation:
Code :
__________________
C'est pas parce que j'ai tort que vous avez raison. |
||||
|
|
00
|
|
|
#20 | |
|
Membre éprouvé
![]() Inscription : février 2005 Messages : 401 ![]() |
Citation:
Et bien ... soit je me suis aussi trompé sur le fait que les cookies de session étaient gerés un peu différemment des autres, soit c'est PHP qui fait en sorte qu'ils s'utilisent de la même manière d'une façon transparente. Je ne peux te conseiller qu'une chose si le sujet t'interesse à ce point, c'est d'aller lire la doc PHP sur les sessions Elle te dira surement beaucoup moins d'aneries que nous |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com