Po prostu uczę się o sesjach i dla moich celów chcę stworzyć coś, co na każde żądanie klienta, serwer uwierzytelnia tego użytkownika, a dopiero potem wykonuje obsługę danych dla tego użytkownika.Pomoc sesji CodeIgniter, pliki cookie nie są bezpieczne?
Jednak Widziałem wiele przykładów z CodeIgniter gdzie sesja jest skonfigurowana jako sposób:
$this->load->library('session');
$newdata = array(
'username' => 'johndoe',
'email' => '[email protected]',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
Jednak nie może ktoś po prostu utworzyć plik cookie na komputerze ze wspólną nazwę użytkownika i "logged_in" oznacza true i nagle jesteś uwierzytelniony bez hasła? To wydaje mi się wadą bezpieczeństwa, ale widzę wiele takich przykładów.
Jaki jest właściwy sposób uwierzytelnienia użytkownika przy każdym żądaniu?
Zastanawiasz się nad tym samym: dlaczego CI nie używa tylko sesji php i nie zapewnia mu jakiegoś interfejsu CI-ish? Prawdą jest, że możesz korzystać z bazy danych, ale co jest nie tak z "normalnymi" sesjami? –
Biblioteka sesji kodowania jest po to, aby sesje stały się bardziej elastyczne i przerobić sesje obsługi. Działa bardzo dobrze i jeśli przechowujesz sesje w bazie danych, wymusza walidację unikalnego identyfikatora sesji. Codeigniter obsługuje przezroczysto zarówno ustawianie, jak i sprawdzanie identyfikatora sesji. Istnieje interfejs do sesji natywnych dla codignitera tutaj: http://codeigniter.com/wiki/Native_session/ – DRL
"Sesja" nie oznacza "Cookie". Sesja istnieje tylko na serwerze i poza zasięgiem bezpośredniego napastnika. Plik Cookie zawiera właśnie sessionid, który jest nieprzezroczystym i losowym ciągiem znaków. Serwer używa obiektu sessionid do wyszukiwania obiektu sesji dla bieżącego użytkownika. W skrócie, plik cookie nie zawiera nazw użytkownika/email/logged_in flag, a zatem atakujący nie może ich bezpośrednio modyfikować. –