Renovación de sesión ¿con qué frecuencia es necesario?

4

Estoy revisando nuevamente la administración de sesión de un sitio y actualmente renueva el ID de sesión del cliente en cada actualización de página. La idea es que si se la roban directamente del navegador, hay menos posibilidades de que la sesión sea secuestrada.

Aunque esto no parece tener sentido. Si es posible que algún tipo de malware o vulnerabilidad del navegador genere un identificador de sesión para un pirata informático, entonces deberían poder secuestrar esa sesión sin importar la nueva sesión que se cree cada vez, ya que "llegarán primero". .

Por lo que puedo decir, simplemente no hay manera de resolver ese tipo de problemas centrándose en el token de la sesión en sí, sino que la información de perfil de otros usuarios es más confiable. Y, por supuesto, solicitar la contraseña para cambios críticos.

Entonces, ¿hay algún punto en absoluto para crear un nuevo token de sesión para cada carga de página, parece un poco inútil y una pérdida de recursos? De hecho, si se crean tantos ID, habrá una mayor probabilidad de adivinar una sesión al azar.

¿No sería aceptable cambiar el token de sesión durante una sesión o debería renovarse cada par de minutos?

    
pregunta Kline 21.03.2017 - 20:36
fuente

1 respuesta

1

Tienes razón en que realmente no proporciona más seguridad.

Excepto los problemas de usabilidad y la mayor complejidad, no estoy seguro de lo que trae. Por ejemplo, si cambia el session_id e invalida el session_id anterior en cada solicitud, su usuario no podrá usar muchas pestañas en su navegador.

También, como dijiste, no impide que un atacante entre allí primero y use el session_id antes que el usuario real.

¿Es aceptable no cambiar el session_id?

Sí, mientras el usuario está conectado, no hay razón para cambiarlo.

Entonces, ¿cuánto tiempo debe permanecer conectado el usuario?

Siempre depende de la seguridad que su aplicación necesite. Por ejemplo, stackoverflow no restablece mi sesión si no inicio sesión durante una semana. No lo restablece incluso si cierro mi navegador. Por el contrario, el sitio web de mi banco cerrará mi sesión si estoy inactivo durante unos 10 minutos o si cierro la pestaña de mi navegador.

Dejar una sesión abierta aumenta el riesgo de que pueda ser robada. Si es crucial mantener la sesión segura, cámbiela a menudo. La idea aquí es definir reglas sobre cuándo debe cambiarlo y equilibrar la seguridad y la facilidad de uso.

Nota : la seguridad de session_id es bastante similar al token CSRF. Aquí hay una pregunta similar: ¿Por qué actualizar el token CSRF por solicitud de formulario?

    
respondido por el Gudradain 21.03.2017 - 21:41
fuente

Lea otras preguntas en las etiquetas