Estoy empezando a aprender sobre sesiones, y para mi propósito, quiero crear algo que cada vez que el cliente lo solicite, el servidor autentica a ese usuario y solo entonces realiza el manejo de datos para ese usuario.Ayuda de la sesión CodeIgniter, ¿las cookies no son seguras?
Sin embargo, he visto un montón de ejemplos con CodeIgniter, donde la sesión se configura como sigue:
$this->load->library('session');
$newdata = array(
'username' => 'johndoe',
'email' => '[email protected]',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
Sin embargo, no es posible que alguien acaba de crear una cookie en su ordenador con un nombre de usuario común y la el estado 'logged_in' es verdadero, y de repente estás autenticado sin una contraseña? Esto me parece una falla de seguridad, pero veo tantos ejemplos como este.
¿Cuál es la forma correcta de autenticar al usuario en cada solicitud?
Preguntándose lo mismo: ¿por qué CI no solo usa sesiones de php y le proporciona algún tipo de interfaz CI-Ish? Es verdad que puedes usar la base de datos, pero ¿qué hay de malo en las sesiones "normales" en primer lugar? –
La biblioteca de sesión de Codeigniter está ahí para hacer que las sesiones sean más flexibles, y eliminar el trabajo de las sesiones de manejo. Funciona muy bien y si almacena las sesiones en la base de datos se fuerza la validación de una ID de sesión única. Codeigniter maneja de forma transparente tanto la configuración como la verificación de la identificación de la sesión. Aquí hay una interfaz para las sesiones nativas de Codigniter: http://codeigniter.com/wiki/Native_session/ – DRL
"Session" no significa "Cookie". La sesión solo existe en el servidor y fuera del alcance directo de un atacante. La Cookie solo contiene un sessionid, que es una cadena opaca y aleatoria. El servidor usa el sessionid para buscar el objeto de sesión para el usuario actual. En resumen, la cookie no contiene los nombres de usuario/email/logged_in flags, y por lo tanto un atacante no puede modificarlos directamente –