Le Sunday 29 May 2011 22:41:33 Emmanuel Seyman, vous avez écrit : > * Alain Vaugham [25/05/2011 15:17] : > > Dans /etc/php5/apache2/php.ini : > > session.gc_maxlifetime = 1440 > > Ce qui donne 24 mins alors que tu as déjà constaté qu'une session pouvait > durer jusqu'à 28 mins. > > La machine serait elle une Debian, par hasard ?
Oui, c'est une Squeeze. > Si oui, de mémoire, les > sessions sont purgées par un cron et une session durerait donc 24 mins + > le temps jusqu'à la prochaine execution du cron en question. Très intéressant ça! Pendant plusieurs jours j'ai fait varier session.gc_maxlifetime entre 3 mn et 10 heures avec des résultats incohérents. Par exemple avec une valeur de 180 secondes, au bout de 4 ou 5 minutes la session était toujours valide mais la période de validité était variable. Cela ne s'est produit qu'une fois après un restart d'Apache. La conservation ou pas en premier plan de l'affichage de la page entrait aussi dans mes tests... tout ça non reproductible. Quand aux 10 heures, elles n'ont jamais été atteintes. En cherchant à comprendre ces incohérences j'ai appris un peu plus. Par exemple ce que je demande à phppgadmin - et plus tard à des formulaires cgi pour de la saisie - ne va pas dans le sens de la sécurité à cause de la notion de durée de session que je ne connaissais pas vraiment et dont je n'avais nul besoin de m'inquiéter n'utilisant jusque là que psql en mode console même à distance avec TLS/SSL. J'ai trouvé une alternative intéressante mais à prendre avec précautions elle aussi. Il s'agit de rafraîchir automatiquement les sessions : http://www.jjsworld.fr/blog/21-developpement/94-permettre-une-duree-de-session-illimitee-dans-une-application-web Bref, toutes ces recherches m'ont à la fois éclairé et usé. Du coup avant hier j'ai installé pgadmin. Avec lui on peut supprimer le php et même l'apache qui est dessous. Ce n'est pas très fancy comme affichage et ça ne peut pas être mis entre toutes les mains tel quel mais ça colle assez bien à mon cahier des charges : je modifie les données manuellement dans une table que je pose sur la partie gauche de l'écran. J'étale les résultats des requêtes sur la partie droite. Il ne manque plus que le rafraîchisement et la mise en page automatiques pour être comblé. Je n'ai pas encore assez de recul depuis que j'ai installé pgadmin pour m'en contenter provisoirement mais il va sûrement me permettre d'attendre un peu pour avancer sur autre chose. En tout cas, merci beaucoup Emmanuel pour ta réponse qui était loin d'être évidente à mettre en relation avec php dans le cas d'une Debian. Je ne vais peut-être pas me jeter immédiatement dessus car si des gens beaucoup plus compétents que moi se sont évertués à complexifier à souhaits les sessions Php ou Apache, je me vois mal ne pas en tenir compte. Ceci dit, l'usage de pgadmin n'est que temporaire. A moins que je ne puisse pas afficher des données dynamiquement à distance avec une appli autre que php - et qui soit à ma portée - je vais sûrement revoir dans l'avenir ce cron.d/php5 purgeur de sessions. J'ai bien noté qu'il faut tenir compte d'éléments qui nécessitent de limiter le temps d'une session. Sauf omission de ma part les voici : 1) réduction de la charge côté serveur 2) sécurisation du clavier/écran/souris côté client 3) sécurisation des données et leur transmission Dans un VPN/extranet : Pour le point 1) je ne sais pas encore l'évaluer mais ce sera faible. Pour le point 2) je sais faire. Pour le point 3) j'ai mis en place systématiquement un canal chiffré avec TLS/SSL grâce à un certificat X509. Je ne comprendrais donc pas qu'une session php doive être limitée dans le temps pour ce motif. -- Alain Vaugham Clef GPG : 0xD26D18BC _________________________________ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux