Más que una duda o pregunta esto es una reflexión.
Estoy programando una web servida de html y datos desde vServer. Es de acceso privado, es decir, el usuario se identifica con usuario-contraseña. La cuestión es la del método de sesiones para identificar al usuario etc.
Que diferencia hay, y para qué guardar un id de sesión si tengo que verificar que existe esa sesión en cada petición a vServer, esto significa hacer una búsqueda en la tabla sesiones y verificar el ok y tirar para adelante o, por contra, dar el convenido error de identificación; Para esto, ¿No será lo mismo? que enviar el usuario y clave en cada petición, resolver la identificación, ¿La búsqueda no es la misma?
En fin, esta reflexión en cuanto a la verificación en el acceso de usuario, es para todos los sistemas y teniendo en cuenta que no soy profesional ni avanzado en el tema, me gustaría saber de vuestra opinión, o de las razones por las cuales se utilizan las sesiones… Por último, y para mi proyecto, qué me aconsejais para mi web servida por vserver en cuanto a identificación y servir contenido.
Gracias a todos.
Saludos.
Bueno yo llevo siendo desarrollador Ruby on Rails un tiempo, te doy mi opinion:
Cuando un usuario crea una session, es decir, va a una pantalla de login y envia usuario y contraseña lo que normalmente hace la aplicación es verificar la autenticación y crea un session en la cookie y la firma de alguna forma, de ahi en adelante para saber si los request pertenecen a un usuario autentiacado verifica si la session tiene es valor esta firmado, con eso sería suficiente simplemente para establecer si debe arrojar un error de autenticación o no.
Ya dentro del codigo si se necesita la identidad especifica del usuario seguramente la session tiene el id, username, email, etc. que identifique al usuario que esta haciendo la petición y a partir de ello puede buscar en la base de datos o una cache la data del usuario.
Como vez este es un metodo bástante más eficiente y seguro, que enviar en todos los request username y password.
Un saludo,
Ok Cristian, de acuerdo que la seguridad con la sesión y no enviar siempre el login. Pero en cuanto a bd siempre hay que verificar haciendo una consulta para verificar la sesión o el login, verdad ?
En cualquier caso me convences para usar las sesiones.Gracias.
Hola Robertocofiex,
No necesitas ir a la bd para verificar la session con que el usuario tenga la cookie firmada y el dato de identificación es suficiente para la autenticación, ahora si en código que ejecutas en la petición necesitas datos del usuario más alla del id o el email, si tendrías que ir a la bd o la caché.
Saludos,
Hola Cristian, ¿A qué te refieres con una sesión firmada?
Saludos.Roberto.
Hola,
Me refiero que para guardar un dato en la cookie digamos user_id=1 este valor se encrypta con una llave de firmado que solo debe conocer la aplicación de backend, cuando se haga otro request y traiga de nuevo al cookie, esta se verifica con el mecanismo de encriptación.
Aunque esto debe hacerlo el framework con el que trabajes