Codeigniter - wygaśnięcie sesji i funkcja „zapamiętaj mnie”
Buduję funkcję „Zapamiętaj mnie” w Codeigniter, zwykle widzę biblioteki / projekty ustawiające plik cookie na użytkowniku za pomocą tokena, ten token zostaje zapisany w bazie danych i porównywany za każdym razem, gdy użytkownik uzyskuje dostęp do witryny.
W Codeigniter możemy jednak ustawić czas wygaśnięcia sesji, co prowadzi mnie do wypróbowania innego podejścia, tak właśnie zrobiłem:
Ustawiłem session_expiration w config na 0 (sesja nieskończona)Jeśli użytkownik nie zaznaczy opcji „Zapamiętaj mnie”, ustawiam w sesji 2 godziny i sesję niszczę przy zamykaniu okna.Mój kod logowania wygląda tak:
if (!$this->input->post('remember_me')) {
$this->session->sess_expiration = 7200;
$this->session->sess_expire_on_close = TRUE;
}
$this->session->set_userdata($session_data);
I mój plik konfiguracyjny:
$config['sess_expiration'] = 0;
$config['sess_expire_on_close'] = FALSE;
Nie widzę ludzi używających tego rozwiązania w projektach, przetestowałem to i wygląda na to, że działa dobrze.
Tak, na moje pytanie, czy powiedziałbyś, że to bezpieczna praktyka? Jakieś zagrożenia bezpieczeństwa, o których powinienem wiedzieć? Wszelkie dane wejściowe dotyczące tego rozwiązania vs token cookie + bazy danych byłyby świetne.