Sto solo imparando a conoscere le sessioni e, per i miei scopi, voglio creare qualcosa che su ogni richiesta del client, il server autentica quell'utente, e solo allora esegue la gestione dei dati per quell'utente.Aiuto sessione CodeIgniter, i cookie non sono sicuri?
Tuttavia, ho visto un sacco di esempi con CodeIgniter in cui la sessione è impostato come in tal modo:
$this->load->library('session');
$newdata = array(
'username' => 'johndoe',
'email' => '[email protected]',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
Tuttavia, non poteva qualcuno solo creare un cookie sul proprio computer con un nome utente comune e la lo stato 'logged_in' è true, e improvvisamente sei autenticato senza password? Questo mi sembra un difetto di sicurezza, ma vedo così tanti esempi come questo.
Qual è il modo corretto di autenticare l'utente per ogni richiesta?
Chiedendo la stessa cosa: perché IC non usa solo le sessioni di php e fornisce una sorta di interfaccia CI-ish ad esso? È vero che puoi usare il database, ma cosa c'è di sbagliato nelle sessioni "normali" in primo luogo? –
La libreria di sessione di CodeIgniter è pronta per rendere le sessioni più flessibili e per eliminare le sessioni di gestione. Funziona molto bene e se si memorizzano le sessioni nel database forza la convalida di un ID sessione univoco. Codeigniter gestisce in modo trasparente sia l'impostazione che il controllo dell'ID di sessione. C'è un'interfaccia alle sessioni native per codigniter qui: http://codeigniter.com/wiki/Native_session/ – DRL
"Session" non significa "Cookie". Sessione esiste solo sul server e fuori portata diretta di un utente malintenzionato. Il cookie contiene solo un sessionid, che è una stringa opaca e casuale. Il server utilizza il sessionid per cercare l'oggetto di sessione per l'utente corrente. In breve, il cookie non contiene i flag user name/email/logged_in, e quindi un attacker non può modificarli direttamente –