|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Bonjour,
Les nouvelles aventures de PsychoBob au pays des cookies de session: J'utilise une condition pour l'affichage de certaines pages. Il s'agit de tester si le cookie de session existe, sinon le header renvoit sur la page d'identification. Code :
Code :
J'ai tout compris ?
__________________
C'est pas parce que j'ai tort que vous avez raison. |
||||
|
|
00
|
|
|
#2 |
![]() ![]() |
oui, tout compris
en général : ne jamais faire reposer un point de sécurité d'un site sur cookie. Ils peuvent être forgés (faille de sécurité) Ils peuvent être désactivée (faille de disfonctionnement)
__________________
Rédacteur "éclectique" (XML, IRC, Web...) Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC) je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque ! pensez à la balise [code] (bouton #) et au tag (en bas)
|
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Donc la première solution est une passoire alors que la seconde est fiable ?
Peut-on passer outre la seconde, du reste ? Et est-ce la peine de faire plusieurs fois dans la page des test d'existences de variable de session, dès lors qu'un premier test à pour instruction de déclencher le header s'il retourne false ? J'ai encore du mal à piger le mécanisme là. Mettons que le gars est chez lui il veut afficher une page à accès réservé sans avoir de compte. Il ne peut pas forcer mes formulaires, il ne lui reste qu'à forcer la condition d'existence des sessions, fait par mes scripts ci-dessus. Comment il fait ? De même, si je fais : if(!isset( $_COOKIE[ session_name() ] ) ) {session_start();} Puisque le gars peut se fabriquer un faux cookie, il peut aussi très bien démarrer une session sans être connecté. Et là ? Qu'estce qu'il peut faire ? A priori la session ne comportera pas de variables puisquelles sont créés en cas d'identification seulement. ça fait un max de questions mais elles m'intéressent toute autant.Si quelqu'un a le courage de les traiter une par une, ça sera génial, merci.
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#4 |
![]() ![]() |
le seul moyen de contourner le second test est le vol de session (ou le piratage du serveur)
si tu es sûr à 100% que ta variable de session existe (exemple, arrêt prématuré du script en cas de non-existence) alors le test de blocage suffit (celui qui arrette le script) à condition qu'il soit fait avant les autres accès à la variable bien sûr
__________________
Rédacteur "éclectique" (XML, IRC, Web...) Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC) je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque ! pensez à la balise [code] (bouton #) et au tag (en bas)
|
|
|
00
|
|
|
#5 | ||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
En tout, je fais cela en haut de mes pages, dîtes-moi si vous-y voyez une faille :
Code :
__________________
C'est pas parce que j'ai tort que vous avez raison. |
||
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
pourquoi tu te sers de cookies ?
les sessions suffisent largement pour ce que tu veux faire, ton test sur les cookies est comme si tu mettais if(1), parce que pour moi les cookies sont des supers passoires. Donc voila.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Je me sers des cookies parce que je veux que les sessions passent par les cookies et pas dans l'url, masquées ou non.
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
une session, si je ne m'abuse, c'est :
toutes les infos stockées sur le serveur. et un ids stocké sur ton disque. donc je vois pas trop de quoi tu parles.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Je parle de l'id de session, parce qu'un id de session en cookie ça se vole plus difficilement qu'un id de session dans l'url.
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
dans ce cas, utilise les session, et fait un IDS2 de ton cru que tu balades dans l'url avec les GET.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
|
|
00
|
|
|
#11 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Comment ça utilise les sessions ? J'utilise les sessions j'ai des variables de sessions simplement c'est l'id de session qui est stocké chez le client dans un cookie.
Y'a une fonction pour ça normalement session_use_cookie() ou un truc comme ça mais apparemment chez ovh on a du mal avec ce truc (cf le post de Titoumimi). Je sais pas ce que c'est qu'un IDS2 (id de session?) et je veux pas qu'il y ait quoi que ce soit dans mon url, c'est d'ailleurs la première raison pour laquelle je force les sessions par cookies parce que sinon les moteurs vont morfler avec des urls désastreuses. d'ailleurs c'est mon site qui va morfler, pas les moteurs. Et accessoirement c'est plus sur par cookie.
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#12 | |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 791 ![]() |
Citation:
Un moyen de limiter un peu le vol de session est de stocker l'ip et l'id de session du client dans une BDD et de ne délivrer les pages qu'après vérification sur chaque page. Mais bon, il suffit que deux personnes soit sous le même proxy et si l'une vole l'id de session de l'autre, elle pourra se connecter vu les 2 clients auront la même ip. |
|
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Plutot que de gerer le session via php tu peux gérer les session via une base de donnée. Ainsi c'est toi qui émule le tous et tu es sur qu'elle ne peut passer dans l'url puisque c'est toi qui le gère.
|
|
|
00
|
|
|
#14 | |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Citation:
Ou alors il faut aller sur le pc du client récupérer physiquement le cookie. Je répète ce que j'ai compris de ce que j'ai lu. Je vois mal comment faire passer par une base de donnée en plus c'est beaucoup plus lourd quand même. Mais admettons, il va bien falloir le faire passer de page en page le faux id de session. Et là comment faire sans le faire passer l'url ou en cookie ?
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com