2015-05-22 6 views
5

Desidero proteggere un po 'la mia applicazione, in particolare voglio migliorare il modo in cui vengono gestite le sessioni. Quindi, in questo momento so che diversi fatti:Gestione di session_regenerate_id() in richieste Ajax

  1. session_regenerate_id(false) non distrugge vecchia sessione
  2. session_regenerate_id(true) distrugge vecchia sessione. Con ricariche di pagina ordinarie non c'è niente di sbagliato nell'uso di session_regenerate_id(true).

Tuttavia quando fanno decine concomitante AJAX richiede ci può essere un problema che si traduce in un messaggio di errore object destruction failed.

Quindi, non c'è più nulla da fare, quindi utilizzare session_regenerate_id(false) in richiesta AJAX.

Ma ciò che è necessario, è quello di segnare in qualche modo precedenti obsoleti sessioni, che diventano obsolete in seguito a invocare session_regenerate_id(false), come le sessioni di "zombie" che in qualche modo essere distrutti e non i rifiuti nella cartella sessioni.

Ho bisogno di alcuni consigli pratici su come implementarlo.

risposta

0

Tutte le operazioni di pulizia della sessione, comprese quelle con ID rigenerati, vengono gestite dal garbage collector della sessione di PHP. Non è necessario nulla di speciale quando si chiama session_regenerate_id(false) per rimuovere vecchie sessioni dalla memoria.

PHP's settings per session.gc_probability, session.gc_divisor e session.gc_maxlifetime.

È inoltre possibile eseguire la pulizia della sessione in base a last access time.