Servir Web - Pensamiento


([N1] robertocofiex) #1

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.


([N1] cristianvg2003) #2

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,


([N1] robertocofiex) #3

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.


([N1] cristianvg2003) #4

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,


([N1] robertocofiex) #5

Hola Cristian, ¿A qué te refieres con una sesión firmada?

Saludos.Roberto.


([N1] cristianvg2003) #6

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