Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
829 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Perte de session avec AOL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Perte de session avec AOL

n°1398303
giboo
Posté le 30-06-2006 à 19:26:29  profilanswer
 

Bonjour à tous,
 
j'ai un soucis : mes sessions sont perdues avec le navigateur AOL (8.0 ou 9.0).
 
j'ai beaucoup cherché sans trouver de réponse ouverte.
par contre je suis tombé sur les explications d'AOL himself : http://webmaster.aol.fr/sessions.html...
 
le problème est le suivant : avec les répartiteurs de charge (load balancers qui équivalent à un proxy changeant l'adresse IP à chaque page) le numéro de session ne peut pas être retrouvé (puisqu'il est construit à partir de l'IP qui change).
 
la solution : définir soit même l'ID de session sans se servir de l'IP (puisqu'elle change de page en page). Et enregistrer cette ID manuelle dans un cookie.
 
ma mise en oeuvre : remplacer un simple session_start() par ça :

Code :
  1. if (!isset($_COOKIE['idSession'])) {
  2.    //
  3.    // Si cookie d'ID absent -> nouvelle ID de session
  4.    //
  5.    srand ((float) microtime() * 9999999) ;
  6.    $user_ip = rand(0,9999999) ;
  7.    $idSession = md5($user_ip.time()) ;
  8. } else {
  9.    //
  10.    // Sinon récupère l'ID de session dans le cookie
  11.    //
  12.    $idSession = $_COOKIE['idSession'] ;
  13. }
  14. //
  15. // démarrage/reprise de la session
  16. //
  17. session_name("maSession" ) ;
  18. session_id($idSession) ;
  19. //
  20. // (re)écriture du cookie d'id session (pour étendre sa durée de vie)
  21. //
  22. setcookie("maSession", $idSession, (time()+12800), "/", ".monDomaine.com", 0) ;


 
Hé bin ça marche pas !  :cry:  
 
Pourtant, j'ai regardé et les cookies de session ont bien le même identifiant, même quand mon panier se vide / rerempli au hasard des load balancer....
 
Alors si quelqu'un à une idée... je suis preneur
 
Merci d'avance.
Cordialement, Giboo.

mood
Publicité
Posté le 30-06-2006 à 19:26:29  profilanswer
 

n°1398318
AlphaZone
Posté le 30-06-2006 à 20:35:17  profilanswer
 

Banni AOL. Adopte Firefox et tu veras la vie en rose ;)
 
PS : Une ip ne peut pas changer de page en page lol ou alors t'es souvent déconnecté

Message cité 1 fois
Message édité par AlphaZone le 30-06-2006 à 20:36:21
n°1398319
Hermes le ​Messager
Breton Quiétiste
Posté le 30-06-2006 à 20:35:27  profilanswer
 

giboo a écrit :

Bonjour à tous,
 
j'ai un soucis : mes sessions sont perdues avec le navigateur AOL (8.0 ou 9.0).
 
j'ai beaucoup cherché sans trouver de réponse ouverte.
par contre je suis tombé sur les explications d'AOL himself : http://webmaster.aol.fr/sessions.html...
 
le problème est le suivant : avec les répartiteurs de charge (load balancers qui équivalent à un proxy changeant l'adresse IP à chaque page) le numéro de session ne peut pas être retrouvé (puisqu'il est construit à partir de l'IP qui change).
 
la solution : définir soit même l'ID de session sans se servir de l'IP (puisqu'elle change de page en page). Et enregistrer cette ID manuelle dans un cookie.
 
ma mise en oeuvre : remplacer un simple session_start() par ça :

Code :
  1. if (!isset($_COOKIE['idSession'])) {
  2.    //
  3.    // Si cookie d'ID absent -> nouvelle ID de session
  4.    //
  5.    srand ((float) microtime() * 9999999) ;
  6.    $user_ip = rand(0,9999999) ;
  7.    $idSession = md5($user_ip.time()) ;
  8. } else {
  9.    //
  10.    // Sinon récupère l'ID de session dans le cookie
  11.    //
  12.    $idSession = $_COOKIE['idSession'] ;
  13. }
  14. //
  15. // démarrage/reprise de la session
  16. //
  17. session_name("maSession" ) ;
  18. session_id($idSession) ;
  19. //
  20. // (re)écriture du cookie d'id session (pour étendre sa durée de vie)
  21. //
  22. setcookie("maSession", $idSession, (time()+12800), "/", ".monDomaine.com", 0) ;


 
Hé bin ça marche pas !  :cry:  
 
Pourtant, j'ai regardé et les cookies de session ont bien le même identifiant, même quand mon panier se vide / rerempli au hasard des load balancer....
 
Alors si quelqu'un à une idée... je suis preneur
 
Merci d'avance.
Cordialement, Giboo.


 
Un peu de patience, je suis justement en train de terminer mon système perso de sessions que je vais rendre public ici dans maximum 24/48 heures.  :hello:  

n°1398320
Hermes le ​Messager
Breton Quiétiste
Posté le 30-06-2006 à 20:36:46  profilanswer
 

AlphaZone a écrit :

Banni AOL. Adopte Firefox et tu veras la vie en rose ;)


 
Ce que j'ai compris, c'est qu'il veut créer des sites compatibles avec le navigateur d'AOL. Si ça se trouve il a un client à la con qui refuse de surfer sur autre chose. [:spamafote] ça c'est déjà vu.  

n°1398334
supermofo
Hello World !
Posté le 30-06-2006 à 21:35:23  profilanswer
 

Si si l ip peut changer de page en page selon ce que les proxy décident de faire. Je parle juste de possibilité ( je connais pas AOL mais leur réputation est plus que mauvaise dans le monde des webmasters ).
 
Dans ton cas la solution la plus simple est le cookie.
 
Voici un algo exemple:
 
1) l utilisateur arrive sur ton site
2) tu lui met un cookie avec des valeurs uniques
3) l utilisateur revient avec une ip differente ( son id n est plus valable)
4) tu lis le cookie et l id qui va avec
5) tu cherches dans table de hash cet identifiant
6) tu lui reassignes la session correcte
 
Certains diront que transmettre un id de session dans un cookie est de la folie. Si tu es parmi eux alors soit tu crypte, soit tu utilises un token.
 
Il faut que tu cree ton propre session handler.
 
bon courage :)
 
PS: Si j etais toi je laisserais tomber AOL et les utilisateurs qui vont avec.

n°1398338
Hermes le ​Messager
Breton Quiétiste
Posté le 30-06-2006 à 21:42:02  profilanswer
 

supermofo a écrit :


Certains diront que transmettre un id de session dans un cookie est de la folie. Si tu es parmi eux alors soit tu crypte, soit tu utilises un token.


 
C'est plutôt le mettre dans l'adresse qui comporte plus de risque, mais bon... De toutes manières, aucun système de session n'est infaillible à partir du moment où on peut de toutes manières passer derrière qqu et chopper son identifiant de session si on a la main sur le poste régulièrement et la possibilité de sauvegarder les cookies, ou les adresses. [:spamafote]
 
C'est aux utilisateurs de se déconnecter. [:spamafote] Le problème n°1, c'est les utilisateurs qui oublient de fermetr la session dans les café internet ou chez un pote.
 
NB : crypter l'ID de session ne servira strictement à rien. (suffit de réfléchir deux secondes pour s'en convaincre).

n°1398353
supermofo
Hello World !
Posté le 30-06-2006 à 22:10:31  profilanswer
 

Oui j avoue aucune fonctions bijectives ne sécurise un id de session à partir du moment ou tu stockes chez l'utilisateur.
 
Je me rappelle d'un webmaster qui mettait une penalité aux utilisateurs qui ne fermait pas leurs sessions correctement.
En gros impossible de se reconnecter pour un temps arbitraire.
 
Comment vont le prendre les utilisateurs ?  
 
Perso je pense que le problème vient des innombrables script PHP pret à installer. Mais en meme temps cela protege les codes persos :s
 
Jusqu'a preuve du contraire , je pense que travailler avec les cookies client est une mauvaise méthode.  
OK Ebay et ci tournent avec les cookie, chacuns ses choix.
 
Maintenant fermer un onglet de firefox ne detruit pas le cookie serveur, cool firefox non ?
 
 
Le pauvre utilisateur AOL est damné ( au passage :) )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Perte de session avec AOL

 

Sujets relatifs
Variables de session CGI[Batch-dos] Récupérer nom session
Recuperer l'id de session php a l'aide d'un regex[Vb.NET et Sharepoint] Usercontrol et variable de session (Résolu)
[PHP] Problème de checkbox dans une session[PHP/MySql] Supprimer une table SQL temp dans une session PHP
Session local vide (IIS 5.1 et IE6 et SP2)probleme de de perte de controle sur la page ASP
Probleme de session et tableau 
Plus de sujets relatifs à : Perte de session avec AOL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR