Definizione del timeout di inattività

1

Devo eseguire il timer di timeout di inattività della sessione

  1. Dal start della prima richiesta all'inizio della prossima richiesta o
  2. Dalla fine della prima richiesta all'inizio della prossima richiesta?

Un po 'di contesto - Ho un timeout di inattività di 10 minuti su un'applicazione Web API. Alcune richieste richiedono molto tempo (diciamo circa 8 minuti). Se faccio 1., gli utenti perdono effettivamente 8 minuti della loro quota inattiva su queste richieste. Se faccio 2., non si adatta bene alla definizione di idle: l'utente è stato (forzato ad essere) inattivo dall'inizio della prima richiesta.

Sono incline a 2. a causa di UX, ma a parte le preoccupazioni sulla definizione, c'è un modo 2. Potrebbe essere usato impropriamente?

Credo che il timeout di inattività sia presente per la maggior parte dei motivi, come nel link e sono ok per qualsiasi risposte per concentrarmi su questi requisiti (sfortunatamente, non riesco a trovare requisiti formali a supporto del mio credo - il sistema attuale si basa su un sistema molto vecchio, le cui esigenze sono purtroppo perse negli annali del tempo. Non sono sicuro del motivo per cui 10 minuti e non 9 o 11). Detto questo, sono curioso di sapere se esistono scappatoie di sicurezza che possono utilizzare 2. e non 1.

Nota: ho anche un timeout assoluto in esecuzione dall'inizio della sessione

    
posta potatopeelings 27.11.2017 - 02:51
fonte

1 risposta

1

Dipende da cosa dovrebbe essere ottenuto con il timeout. È possibile sospendere una sessione se l'utente non interagisce con il sito per un po 'di tempo. Oppure potresti interrompere la sessione se l'utente non ha visitato il sito per un po 'di tempo, ma non eseguire il timeout se il sito è ancora aperto nel browser. Il primo è più sicuro, ma il secondo è più comodo per l'utente (anche i timeout più lunghi sono più comodi). Come ponderare la sicurezza e l'usabilità dipende dal tuo caso d'uso specifico.

Se il timeout della sessione deve essere attivato in base all'attività effettiva dell'utente, deve essere ripristinato solo se tale attività viene rilevata, ad esempio all'inizio di una richiesta HTTP causata dall'attività dell'utente.

Se il timeout della sessione deve essere basato sull'attività del browser (cioè il sito Web è ancora aperto nel browser), può essere ripristinato ogni volta che i dati vengono scambiati con successo con il browser. Tale scambio di successo significa che il sito web è ancora aperto all'interno del browser e che il browser ha una connessione di rete, ma ciò non significa che l'utente stia effettivamente facendo qualcosa con il sito (cioè potrebbe essere lontano dalla tastiera).

    
risposta data 27.11.2017 - 07:33
fonte

Leggi altre domande sui tag