¿Por qué la duración estándar de la sesión es de 24 minutos (1440 segundos)?

3 minutos de lectura

avatar de usuario
Anna Völkl

Estuve investigando un poco sobre el manejo de sesiones de PHP y me encontré con el session.gc_maxlifetime valor de 1440 segundos. Me he estado preguntando por qué el valor estándar es 1440 y cómo se calcula. ¿Cuál es la base para este cálculo?

¿Cuánto tiempo tiene sentido mantener las sesiones? ¿Qué valores mínimos/máximos para session.gc_maxlifetime recomendaría? Cuanto mayor sea el valor, más vulnerable es la aplicación web para el secuestro de sesiones, diría yo.

  • Aquí está la línea de código fuente donde se establece el valor predeterminado. Aquellos familiarizados con GIT pueden rastrear su historial y tal vez encontrar un RFC o un ticket de error (si corresponde).

    –Álvaro González

    5 de febrero de 2013 a las 9:06

  • @Anil: Esta discusión no responde a mi pregunta.

    – Anna Völkl

    5 de febrero de 2013 a las 10:48

  • @ÁlvaroG.Vicario Encontré el cambio: github.com/php/php-src/commit/… sin embargo, no hay documentación asociada relevante. 1440 fue de hecho el número original de minutos para el tiempo de espera, así que supongo que nunca lo sabremos a menos que alguien localice a Sascha Schumann.

    – Dai

    7 de febrero de 2013 a las 8:08

  • Encontré la dirección de correo electrónico de Sascha y me puse en contacto con él sobre esto, le avisaré a la gente si responde.

    – Dai

    7 de febrero de 2013 a las 8:13

  • ¿¡Por qué Sascha no respondió!?

    -Dennis

    20 de mayo de 2020 a las 15:18

avatar de usuario
CXJ

La respuesta real es probablemente muy cercana a esto:

Durante los días de PHP3, PHP en sí mismo no tenía soporte de sesión.

Pero una biblioteca de código abierto llamada PHPLIB, escrita inicialmente por Boris Erdmann y Kristian Koehntopp de NetUSE AG, proporcionó sesiones a través del código PHP3.

Las duraciones de las sesiones se definieron en minutos, no segundos. Y el tiempo de vida predeterminado era de 1440 minutos, o exactamente un día. Aquí está esa línea de código de PHPLIB:

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

Sascha Schumann estuvo involucrado en el proyecto PHPLIB alrededor del período de 1998 a 2000. No hay duda de que estaba familiarizado con el código de sesión de PHP3.

Luego apareció PHP4 en el año 2000 con soporte de sesión nativo, pero ahora el tiempo de vida se especificaba en segundos.

Apuesto a que alguien nunca se molestó en convertir minutos a segundos. Es probable que esa persona fuera Sascha Schumann. Una vez que ese valor se codificó en el motor Zend, se convirtió en la configuración (php.ini) por defecto también.

  • A uno le llama la atención que 24 adquiere un significado especial al cambiar la unidad. Entonces, de las respuestas dadas, la tuya tiene más sentido para mí.

    –Markus Malkusch

    15 mayo 2016 a las 15:21

  • Eso es interesante. ¡Gracias por compartir! 🙂

    – SysVoid

    15 mayo 2016 a las 21:50

  • ¡Esto es realmente interesante! ¡Gracias!

    – Anna Völkl

    16 mayo 2016 a las 14:25

  • Una referencia a la configuración predeterminada de PHP4: github.com/php/php-src/blob/PHP-4.0/ext/session/session.c

    – CXJ

    11 de agosto de 2017 a las 17:44

  • De acuerdo con la documentación de PHP, la duración de la sesión se establece en segundos: php.net/manual/es/…

    – dr_hanns

    27 de mayo de 2019 a las 10:48

avatar de usuario
steve terjeson

1440 se utiliza en un cálculo de tiempo que convierte los segundos en horas/días.

  • 1 día = 24 horas (horas * 24 = 1 día)
  • 1 día = 1440 minutos (minutos * 60 * 24 = 1 día)
  • 1 día = 86400 segundos (segundos * 60 * 1440 = 1 día)

Ejemplo:

9 días [* 60] = 540 [* 1440] = 777600 segundos

Lo mismo es cierto a la inversa:

777600 segundos [/ 1440] = 540 [/ 60] = 9 días

  • Entonces, ¿por qué es la duración de la sesión estándar?

    – Félix Adriyel Gagnon-Grenier

    31 de julio de 2014 a las 13:52

  • Porque es un número de empollón de las matemáticas que es aproximadamente lo mismo que lo que muestra la investigación es el mayor tiempo entre dos solicitudes en la misma sesión (20-30 minutos).

    – dimitar veselinov

    25 de junio de 2015 a las 10:58

  • @dimitarveselinov ¿Qué investigación?

    –Markus Malkusch

    15 mayo 2016 a las 15:27


¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad