109 votes

Pourquoi la durée de vie standard d'une session est-elle de 24 minutes (1 440 secondes) ?

J'ai fait quelques recherches sur la gestion des sessions PHP et je suis tombé sur l'article suivant session.gc_maxlifetime valeur de 1440 secondes. Je me suis demandé pourquoi la valeur standard est de 1440 et comment elle est calculée ? Quelle est la base de ce calcul ?

Combien de temps est-il judicieux de conserver les sessions ? Quelles valeurs min/max pour session.gc_maxlifetime recommanderiez-vous ? Plus la valeur est élevée, plus l'application Web est vulnérable au détournement de session, je dirais.

196voto

CXJ Points 539

La vraie réponse est probablement très proche de celle-ci :

À l'époque de PHP3, PHP lui-même n'avait pas le support des sessions.

Mais une bibliothèque open-source appelée PHPLIB, initialement écrite par Boris Erdmann et Kristian Koehntopp de NetUSE AG, fournissait des sessions via le code PHP3.

Les durées de vie des sessions ont été définies dans minutes et non des secondes. Et la durée de vie par défaut était de 1440 minutes, soit exactement un jour. Voici la ligne de code de PHPLIB :

var $gc_time  = 1440;       ## Purge all session data older than 1440 minutes.

Sascha Schumann a été impliqué dans le projet PHPLIB entre 1998 et 2000. Il ne fait aucun doute qu'il était familier avec le code de session de PHP3.

Puis PHP4 est sorti en 2000 avec un support natif des sessions, mais la durée de vie était alors spécifiée en secondes.

Je parie que quelqu'un n'a jamais pris la peine de convertir les minutes en secondes. Il est probable que cette personne était Sascha Schumann. Une fois que cette valeur a été codée dans le moteur Zend, elle est devenue la configuration ( php.ini ) par défaut également.

-20voto

Steve Terjeson Points 11

1440 est utilisé dans un calcul de temps transformant les secondes en heures/jours.

  • 1 jour = 24 heures ( heures * 24 = 1 jour )
  • 1 jour = 1440 minutes ( minutes * 60 * 24 = 1 jour )
  • 1 jour = 86400 secondes ( secondes * 60 * 1440 = 1 jour )

Ejemplo:

9 jours [* 60] = 540 [* 1440] = 777600 secondes

Il en va de même en sens inverse :

777600 secondes [/ 1440] = 540 [/ 60] = 9 jours

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X