Page 1 sur 1

Question sur les sessions

Posté : 06 déc. 2008, 18:04
par Invité
Bonjour à tous!

Il y a quelques questions que je me pose sur les sessions en php et votre expérience pourrait répondre plus vite qu'une batterie de tests.

Configuration de la session:
use_only_cookie: off
enable_trans_id: off

Un visiteur arrive sur le site http://www.mondomaine.com
session_start()
> la constante SID va être générée que le visiteur accepte les cookies ou non (puisqu'il va falloir recharger une deuxième page avant de le savoir).
> je redirige vers http://mondomaine.com?SID
A ce moment, on vient de changer de host (www.mondomaine.com > mondomaine.com) > Le cookie ne va donc plus être accessible mais l'identifiant de session, lui est disponible via _GET.

Que se passe t'il alors?
1 > La première session est perdue, une nouvelle session va être créée et l'identifiant va être enregistré dans un nouveau cookie associé au nouveau host. Cela n'arrivant uniquement QUE SI LE CLIENT ACCEPTE LES COOKIES, une session reposant sur la transmission de l'identifiant par _GET étant toujours valide.
2 > La première session est perdue, une nouvelle session va être créée et l'identifiant va être enregistré dans un nouveau cookie associé au nouveau host. Cela arrivant QUE LE CLIENT ACCEPTE LES COOKIES OU NON.
3 > La première session n'est pas perdue, l'identifiant étant retrouvé par la variable _GET, un nouveau cookie va être enregistré AVEC LE MEME IDENTIFIANT (si le visiteur accepte les cookies) mais sans conséquence sur les variables session enregistrées.
4 > La première session n'est pas perdue, l'identifiant étant retrouvé par la variable _GET, un nouveau cookie va être enregistré AVEC UN NOUVEL IDENTIFIANT (si le visiteur accepte les cookies) mais sans conséquence sur les variables session enregistrées.

Merci d'avance!

Posté : 06 déc. 2008, 20:29
par Hywan
Hey :),

La question n'a pas à se poser. On ne doit pas utiliser les identifiants de session par URL. Les failles sont trop importantes. Il faut toujours privilégier les cookies, que tout le monde accepte aujourd'hui, faut pas déconner non plus …
Sinon, tu n'as qu'à tester, et tu seras au courant ;-).

Posté : 06 déc. 2008, 21:38
par Invité
Je rejoins évidement ton point de vue, d'autant que ça m'aurait évité pas mal de maux de tête. En fait, c'est une application destinée aux téléphones mobiles, et tous n'acceptent pas les cookies. A terme, je sécuriserai (c'est relatif) en amont en identifiant d'entrée si le terminal les accepte ou non, limitant ainsi le risque aux connections depuis les téléphones en cause. Mais en attendant, je dois prendre ce risque tout en privilégiant l'utilisation des cookies (ne serait-ce que pour alléger les pages comportant de nombreux liens).

Comme tu dis, je vais devoir tester. J'espérais gagner un peu de temps si quelqu'un s'était déjà penché sur le problème ;). Rien que de lire mon propre message, je suis déjà fatigué... il va me falloir du courage!

Merci quand même pour ta réponse!

Posté : 07 déc. 2008, 01:01
par Sékiltoyai
Tu peux aussi utiliser les cookies pour les navigateurs qui l'acceptent, et repérer par IP pour les autres. Sachant que tous ou du moins une écrasante majorité des navigateurs supportent les cookies, et que si c'est un terminal mobile, et qu'en effet il ne les accepte pas, il ne partagera pas son ip avec un autre mobile…

Posté : 07 déc. 2008, 21:16
par Invité
Tu peux aussi utiliser les cookies pour les navigateurs qui l'acceptent, et repérer par IP pour les autres. Sachant que tous ou du moins une écrasante majorité des navigateurs supportent les cookies, et que si c'est un terminal mobile, et qu'en effet il ne les accepte pas, il ne partagera pas son ip avec un autre mobile…
Malheureusement si, si il y a bien une catégorie de clients qui partagent leur ip, c'est bien les téléphones mobiles. Ils utilisent généralement le proxy de l'opérateur (bouygues, sfr, orange...) et arrivent tous avec la même ip (le point positif, c'est que ça permet de repérer facilement l'opérateur mais c'est un autre sujet...).

Finalement, j'ai laissé tombé les tests. Après réflexion, quoiqu'il arrive, je ne vois pas ce que je changerai à mon programme en conséquence...

Merci à tous en tout cas, ce forum est très réactif, ça fait plaisir. Je vais aller m'inscrire de ce pas :D

Posté : 08 déc. 2008, 00:40
par Sékiltoyai
Tu peux aussi utiliser les cookies pour les navigateurs qui l'acceptent, et repérer par IP pour les autres. Sachant que tous ou du moins une écrasante majorité des navigateurs supportent les cookies, et que si c'est un terminal mobile, et qu'en effet il ne les accepte pas, il ne partagera pas son ip avec un autre mobile…
Malheureusement si, si il y a bien une catégorie de clients qui partagent leur ip, c'est bien les téléphones mobiles. Ils utilisent généralement le proxy de l'opérateur (bouygues, sfr, orange...) et arrivent tous avec la même ip (le point positif, c'est que ça permet de repérer facilement l'opérateur mais c'est un autre sujet...).
Alors c'est pareil, tu utilises le HTTP_X_FORWARDED_FOR…