¿Cuánto debe ser el tiempo de espera absoluto de una sesión?

10

La hoja de referencia de administración de sesiones de OWASP ( enlace ) recomienda implementar un tiempo de espera de sesión absoluto (además de la sesión inactiva se acabó el tiempo). Esto significa que la aplicación obliga al usuario a volver a autenticarse independientemente de la actividad de la sesión.

¿Existe alguna recomendación para que la duración de ese tiempo de espera sea lo suficientemente segura y no moleste a los usuarios finales? ¿Sería suficiente establecer un tiempo de espera de sesión absoluto en 24 horas? más?

La aplicación en la que estoy trabajando se ubicará dentro de la red corporativa interna y los usuarios la utilizarán para realizar sus tareas diarias, por lo que la solicitud de autenticación más frecuente puede ser un problema de uso.

    
pregunta Salamander 29.11.2015 - 21:44
fuente

2 respuestas

5

No hay una respuesta estricta a la duración del tiempo. Los límites de los tiempos de espera inactivos dependen de las regulaciones y, posiblemente, de las leyes jurisdiccionales.

Se requiere que el acceso basado en sesión a los datos del titular de la tarjeta en PCI DSS 3.1 sea "razonable". PCI DSS 3.1 en el elemento 8.1.8 proporciona orientación específica sobre esto

  

8.1.8 Si una sesión ha estado inactiva durante más de 15 minutos, solicite al usuario que vuelva a autenticarse para reactivar el terminal o la sesión.

FUENTE: enlace

Existen sugerencias similares para otros programas de cumplimiento. Hacerlo configurable y flexible según el contexto de sensibilidad de datos es probablemente su mejor apuesta.

Los tiempos de espera absolutos no son obligatorios en ningún marco que conozca, pero parecen interesantes. El impacto de la experiencia del usuario es potencialmente significativo, pero el beneficio de limitar la duración del secuestro de una sesión también es significativo. Parece que una mejor solución, si controla el código de la aplicación, sería la rotación de la sesión (es decir, un Tiempo de espera de renovación en el lenguaje de OWASP), por lo que la aplicación genera una nueva ID de sesión periódicamente.

Recomiendo seguir con un tiempo de espera de renovación si la aplicación lo permite y usar un tiempo de espera de renovación no mayor a 1 hora. Esto reduce sustancialmente el riesgo de secuestro y debe ser práctico con cualquier aplicación que tenga un estado de sesión sencillo (pequeño y se puede copiar manualmente) o serializable.

Si el Tiempo de espera absoluto es su única opción, haría el tiempo de espera de 24 horas. Es un límite sensato y sorprende a los límites. Un tiempo de espera absoluto de varios días probablemente confundiría a los usuarios, ya que verían el nuevo aviso como arbitrario o potencialmente indicativo de un fallo de la aplicación.

    
respondido por el Alain O'Dea 29.11.2015 - 22:52
fuente
0

Posiblemente, 24 horas es mucho, 24 minutos es el valor predeterminado para las sesiones de PHP (session.gc_maxlifetime) pero existe una probabilidad del 1% de que las sesiones expiren después de este tiempo (session.gc_divisor).

Tienes que configurar el divisor para la recolección de basura en 1, entonces es 100%.

enlace

Debe comprobar cómo funcionan las sesiones y la recolección de elementos no utilizados en el idioma del servidor que utiliza.

Cuando se cierra el navegador, la sesión también se cierra y probablemente se eliminará de la recolección de basura.

Hay recomendaciones claras en la hoja de trucos:

Common idle timeouts ranges are 2-5 minutes for high-value applications and 15- 30 minutes for low risk applications.

Pero tenga en cuenta que las sesiones no finalizan automáticamente después de 24 minutos cuando la recolección de basura no las elimina (el divisor).

Siempre puede reanudar una sesión en su código y extender su vida útil cuando un usuario está activo. Si el usuario no está activo durante un tiempo específico, deje que la sesión caduque y elimínela.

Pero una sola sesión debe ser lo más corta posible y debe expirar.

enlace

    
respondido por el Daniel Ruf 29.11.2015 - 22:12
fuente

Lea otras preguntas en las etiquetas