Bonjour,
Je suis actuellement en train de réaliser une application web qui doit être sécurisé, sous apache 2.2 avec les modules ssl et php5.
Pour éviter la récupération de session par un attaquant, j'ai décidé de spécifier dans la session une "emprunte" propre à celui qui crée la session, et qui restera la même durant la durée de la session. Quelqu'un voulant utiliser cette session devra donc présenter la même emprunte que celui qui l'a créée.
Pour créer cette emprunte, étant en connexion https, j'ai trouvé judicieux d'utiliser entre autres la variable d'environnement SSL_SESSION_ID, l'identifiant de la session SSL
Citation :
SSL_SESSION_ID string The hex-encoded SSL session id
|
Cependant, voilà mon problème : Cet id est parfois introuvable, que j'essaye d'y accéder à partir du tableau $_SERVER, ou avec la fonction getenv('SSL_SESSION_ID') en ayant auparavant spécifié la directive apache SSLOptions StdEnvVars.
Par parfois, j'entends à chaque connexion avec un navigateur fraichement ouvert, ainsi qu'après un temps d'inactivité. De plus, quand je n'ai pas l'id, spammer la touche refresh ne va rien changer, alors qu'attendre 5 minutes peut faire apparaitre cet ID. Je ne suis pas sur cependant que ceux soient les seuls cas.
Je précise que je n'utilise que des connexions SSL (du moins c'est ce que je crois, le préfixe https:// suffit-il à assurer qu'on ai une connexion SSL?)
Je me pose donc ces questions :
1° Est-il normal que je n'ai pas d'id de session SSL au début d'une connection SSL ?
2° Y a-t-il un autre moyen d'y accéder que via $_SERVER ou autre variable d'environnement?
3° Est-il possible de réinitialiser une connexion afin d'obtenir un ID lorsqu'on en a pas?
4° Et puis tant qu'à faire, que pensez vous de ma technique d'utiliser le SSL_SESSION_ID comme identification supplémentaire de la session?
Désolé si je ne suis pas très précis, mais le comportement de cet id me semble pour l'instant assez aléatoire, n'hésitez pas à me poser des questions, et merci d'avance de votre aide
Edit : découverte d'un comportement "intéressant" : là je suis en train de spammer refresh, et une fois sur deux l'id est trouvé (et est toujours le même), l'autre fois il est introuvable...
Message édité par Aaron GOUZIT le 21-07-2009 à 15:26:16