Estoy creando una aplicación web y quiero permitir que los usuarios inicien sesión (y mantengan sesión). Mi plan para apoyar esto de forma segura es el siguiente:
- El usuario inicia sesión desde un formulario de inicio de sesión: cuando tiene éxito, el servidor responde
con una cookie
secure
yHttpOnly
que simplemente contiene su nombre de usuario. -
Cuando el usuario cierra su navegador y luego regresa, se envía una solicitud (que incluye la cookie) a un punto final en el servidor después de cargar la página que pregunta al servidor si el usuario actual está conectado, que El servidor lo determina por la presencia de la cookie. Si es así, el servidor devuelve el valor de la cookie, que el lado del cliente puede mostrar en la interfaz de usuario como el nombre de usuario del usuario.
-
Cualquier solicitud que requiera un usuario autenticado (como guardar o actualizar datos) lo hará con el nombre del nombre de usuario especificado en la cookie en cada solicitud dada.
Una pregunta importante que tengo: si alguien ingresa a su navegador y cambia manualmente la cookie username
usando devtools, ¿esto le permitiría realizar solicitudes bajo la apariencia de otro usuario de la forma en que lo he establecido? ¿O HttpOnly
previene esto?
¿Estoy complicando esto? ¿Gano algo haciendo esta cookie HttpOnly
, ya que esencialmente estoy permitiendo que el lado del cliente la lea de todos modos? ¿Mi enfoque es seguro?