Recientemente, he tenido el desafío de crear un marco de inicio de sesión que contenga los datos del usuario en una base de datos independiente que conecto a través de una conexión SOAP. Ahora, he hecho algo en este sentido antes de usar solo MySQL.
Ahora para encontrar el sistema de inicio de sesión, almaceno la información del usuario devuelta en $_SESSION
variables; Devuelven la contraseña en texto sin formato (junto con otra información), sin saber por qué, sin embargo, no almaceno esa contraseña en texto sin formato; más bien cifro la contraseña con una clave única para cada usuario.
Para verificar si el usuario está conectado actualmente, utilizo sus sesiones usando 2 parámetros diferentes agrupados y comparados con el logged_in__string
que se realiza al iniciar sesión; Esta es la configuración básica:
$_SESSION['logged_in__string'] = hash ( 'sha512', 'USER_PASSWORD' . $_SERVER['HTTP_USER_AGENT'] );
Después de crear eso, cifro la contraseña usando una clave única para cada usuario; Luego cree una nueva función, check()
que descifre la contraseña, y cree el valor de hash, compárelo con el $_SESSION['logged_in__string']
y si es igual, el usuario inicia sesión.
Mi interés está en las variables $_SESSION
. ¿Cuáles son algunos riesgos potenciales en el enfoque que he tomado, y si hay alguno, cuáles son algunos buenos métodos para asegurar estas sesiones para el usuario?