Tengo una aplicación PHP, actualmente es altamente dependiente de las sesiones. Estoy tratando de eliminar la mayoría, si no todo, el uso de la sesión.
Cuando se trata de iniciar sesión en un usuario. Tengo algunas opciones,
- continuar usando sesiones para almacenar datos básicos del usuario.
- generar mi propio token basado en cookies, que apunta a un ID de información almacenada en memcache con datos básicos del usuario, para verificar el usuario
- genere el token JWT, se almacena en una cookie y se usa para almacenar una ID que apunta a la información en memcache para verificar el usuario.
Básicamente, estoy tratando de evitar problemas como el secuestro de sesiones, etc., pero no estoy seguro de que la implementación de un sistema JWT sea tan útil como pensé al principio.
Parece que hay mucho escrito sobre las ventajas de JWT, pero igualmente, hay mucho escrito sobre "no usar JWT para las sesiones"
Dado que no estoy planeando almacenar datos reales del usuario en el token de JWT, solo una ID, ¿esto tiene muchas ventajas sobre una ID de sesión de PHP estándar?
La principal ventaja que veo es que puedo asegurar que no se manipule, pero que aún así podría sufrir un secuestro dado que está almacenada en una cookie.
Asegurar que la cookie sea HTTP_Only ayudaría sin duda en algunos aspectos.
Entonces, desde el punto de vista de la seguridad, ¿cuál es el método más confiable y menos propenso a los problemas de seguridad para almacenar lo que básicamente es un ID de sesión almacenado en otro formato?