ASP.NET: ¿por qué el intervalo de validación predeterminado de SecurityStamp se establece en 30 minutos?

3

Actualmente estoy estudiando mecanismos de autenticación en ASP.NET Core y encontré la característica SecurityStamp, que también se conoce por ASP.NET Standard. De lo que entiendo de la respuesta aquí , esto se agregó para realizar el cierre de sesión de todas las sesiones activas cuando se modifica algo en la configuración de la cuenta (p. ej., contraseña).

Esto podría ser útil cuando la contraseña está comprometida y la sesión del atacante debería invalidarse. Sin embargo, si este fue el propósito, ¿por qué el valor predeterminado del intervalo de validación se establece en 30 minutos? Tal ajuste hace que todo el mecanismo funcione con hasta 30 minutos de retraso. ¿No debería ser un valor menor (digamos 1 minuto) para hacerlo más efectivo?

    
pregunta PJDev 19.08.2017 - 23:15
fuente

1 respuesta

2

Es para mejorar el rendimiento en aplicaciones a gran escala.

Cada validación de SecurityStamp requiere un golpe de base de datos. Con el intervalo de validación establecido en cero, esto causaría un impacto en la base de datos para cada solicitud. A los 30 minutos, esto mantiene el margen de abuso bastante bajo y reduce drásticamente el número de consultas requeridas.

Como ejemplo práctico, un sistema con 10,000 usuarios simultáneos que realizan solo 5 solicitudes por minuto requeriría 50,000 visitas de validación por minuto cuando el intervalo sea cero. Cambiar ese intervalo a 1 minuto lo reduce a 10,000 hits por minuto. Dejar el intervalo en el valor predeterminado de 30 minutos reduce la tasa a solo 333 consultas por minuto, lo que probablemente no sea una causa de problemas de rendimiento en ninguna aplicación en ninguna escala, por lo que es el valor predeterminado. Puede imaginar que un corto intervalo de validación en un diseño pesado de Ajax que haga 10-20 llamadas web por carga de página y unas pocas consultas continuas en curso podrían causar problemas en la escala.

Puede reducir este intervalo a un minuto o menos si no espera un gran número de usuarios.

    
respondido por el Polynomial 20.08.2017 - 00:22
fuente

Lea otras preguntas en las etiquetas