Buenas,
Estoy construyendo un sistema de usuarios (reinventando la rueda jeje) y la verdad, siempre he visto ejemplos, leido manuales, documentacion, etc y siempre he visto el tipico sistema de guardar los datos introducidos en el formulario de login en sesiones o cookies. En este último caso, para realizar una comprobacion de que el usuario está conectado, primero miramos si hay cookies y despues comprobamos la contraseña o los datos que queramos de ese usuario, ¿verdad? El caso es que dicho método puede ser "inseguro" si andamos buscando una autenticación segura porque mediante un ataque XSS podemos modificar las cookies y acceder a otros datos.
Si hacemos bien la comprobacion de los datos, el usuario no podrá acceder a diferentes datos debido a que puede que no coincidan los datos de verificación (nombre de usuario, contraseña..), pero en el caso de que el usuario, pongamos el caso, tenga múltiples cuentas y sepa sus datos, el usuario, utilizando el ataque XSS puede cambiar de usuario de una manera "inesperada".
Para hacer que el método de comprobacion de login, ¿sería más conveniente utilizar una tabla en la base de datos con una especie de id o token, la id de su usuario y la ip del cliente y hacer que solo haya una cookie con el token (una vez autenticado) y nada más, minimizando asi el uso de la base de datos haciendo una única comprobacion al principio y reduciendo las siguientes consultas para recoger la id de usuario almacenada con el token? ¿sería más seguro este método (incluyendo ataques de otro tipo)? ¿y más eficiente?
Espero sus comentarios y gracias por leerlo!