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.

questionAnswers(3)

yourAnswerToTheQuestion