ASP.NET - perché l'intervallo di convalida predefinito di SecurityStamp è impostato su 30 minuti?

3

Attualmente sto studiando i meccanismi di autenticazione in ASP.NET Core e ho trovato la funzionalità di SecurityStamp, che è nota anche da ASP.NET Standard. Da quanto ho capito dalla risposta qui , questo è stato aggiunto per eseguire l'uscita da tutte le sessioni attive quando qualcosa è stato modificato nella configurazione dell'account (ad es. password).

Questo potrebbe essere utile quando la password è compromessa e la sessione dell'attaccante dovrebbe essere invalidata. Tuttavia, se questo era lo scopo, perché il valore predefinito dell'intervallo di convalida è impostato su 30 minuti? Tale impostazione fa funzionare l'intero meccanismo con un ritardo fino a 30 minuti. Non dovrebbe questo essere un valore più piccolo (diciamo 1 minuto) per renderlo più efficace?

    
posta PJDev 19.08.2017 - 23:15
fonte

1 risposta

2

Serve a migliorare le prestazioni su applicazioni su larga scala.

Ogni convalida di SecurityStamp richiede un hit del database. Con l'intervallo di validazione impostato su zero, ciò causerebbe un hit del database per ogni richiesta. A 30 minuti, ciò mantiene la finestra degli abusi abbastanza bassa riducendo drasticamente il numero di query richieste.

Come esempio funzionante, un sistema con 10.000 utenti simultanei che eseguono solo 5 richieste al minuto richiederebbe 50.000 hit di convalida al minuto quando l'intervallo è zero. Cambiando quell'intervallo a 1 minuto si riduce a 10.000 colpi al minuto. Lasciando l'intervallo al valore predefinito di 30 minuti si riduce la velocità a solo 333 query al minuto, il che è improbabile che possa causare problemi di prestazioni in qualsiasi applicazione su qualsiasi scala, quindi perché è l'impostazione predefinita. Si può immaginare che un breve intervallo di validazione su un progetto Ajax-pesante che esegue 10-20 chiamate Web per pagina e alcune query ripetute in corso possa causare problemi su larga scala.

È possibile ottimizzare questo intervallo fino a un minuto circa se non si prevede un numero elevato di utenti.

    
risposta data 20.08.2017 - 00:22
fonte

Leggi altre domande sui tag