web-dev-qa-db-fra.com

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

J'ai fait des recherches sur PHP Session Handling et suis tombé sur le session.gc_maxlifetime valeur de 1440 secondes. Je me demandais pourquoi la valeur standard est 1440 et comment elle est calculée? Quelle est la base de ce calcul?

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

95
Anna Völkl

La vraie réponse est probablement très proche de cela:

De retour pendant PHP3 jours, PHP lui-même n'avait pas de support de session.

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

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

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

Sascha Schumann a participé au projet PHPLIB entre 1998 et 2000. Il ne fait aucun doute qu'il connaissait le code de session PHP3.

Puis PHP4 est sorti en 2000 avec un support de session natif, mais maintenant la durée de vie a été spécifiée en secondes.

Je parie que quelqu'un n'a jamais pris la peine de convertir des 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.

173
CXJ