PHP - Problemas al desencriptar variable de sesión

 
Vista:

Problemas al desencriptar variable de sesión

Publicado por Andrés (2 intervenciones) el 18/10/2017 14:34:03
Muy buenas a todos!!

Os comento mi problema:

Estoy realizando un sistema de logueo simple en php que funciona de la siguiente manera

1 - El formulario de acceso envía los datos mediante post a un script php que se encarga de verificarlos contra la base de datos, si son correctos, encripta mediante una función varios id de la tabla del usuario y los carga en variables de sesión. Tras esto, redirige a la página principal del panel de control.

2 - En la página principal del panel de control obtiene las variables de sesión, las desencripta y las carga en variables normales para funcionar con ellas.

El problema radica en que cuando refresco la página principal del panel, vuelve a ejecutar la desencriptación pero sobre los valores desencriptados y da error.

Os dejo los fragmentos de código:

loguea.php (Verifica datos de acceso, encrypta datos de usuario y carga en variables de sesión)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$qGetUser = mysqli_query($conexion,'SELECT id_admin, fk_tipoAdmin, fk_evento, nombre FROM t_admins WHERE email ="'.$email.'" AND pass="'.$pass.'" AND estado=1');
 
$nGetUser = mysqli_num_rows($qGetUser);
 
$aGetUser = mysqli_fetch_array($qGetUser);
 
if($nGetUser==1){
 
	$_SESSION['adminId'] = encryptVar($aGetUser['id_admin']);
	$_SESSION['adminType'] = encryptVar($aGetUser['fk_tipoAdmin']);
	$_SESSION['adminEvent'] = encryptVar($aGetUser['fk_evento']);
 
	header('Location: ../dashboard.php');
}

dashboard.php (Recoge las variables de sesión, desencripta y funciona con ellos)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
session_start();
 
include('assets/lib/functions-gen.php'); // Funciones generales del tema
 
if(isset($_SESSION['adminId'])){
    $adminId = decryptVar($_SESSION['adminId']);
    $adminType = decryptVar($_SESSION['adminType']);
    $adminEvent = decryptVar($_SESSION['adminEvent']);
}else{
    //Redirige al login
}
 
 
echo $adminId;
echo $adminType;
echo $adminEvent;

He probado a inicializar en blanco las variables antes de cargar el contenido de las variables de sesión, pero al hacerlo, no carga el valor de las de sesión.

Gracias de antemano, un saludo!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problemas al desencriptar variable de sesión

Publicado por Alejandro (54 intervenciones) el 18/10/2017 14:50:58
Estimado Andres,

En lo personal, los ingresos a sistemas que hago, son desde el formulario usuario y clave,
la información se valida con la clave almacenada en la BD en md5(pass) o cualquier otro medio de encriptación,
una ves que se válida, ingresa al Home o Dashboard de la aplicación,
en el momento que se ejecuta la validación, se crean las variables de $_SESSION en el sistema, las cuales no las encripto, por que no es necesario. Ya que se asume que el usuario que se registro es el propietario. en el caso que el usuario quiera hacer una modificación en el sistema, vuelve a solicitar la contraseña.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas al desencriptar variable de sesión

Publicado por Andrés (2 intervenciones) el 18/10/2017 16:59:11
Buenas tardes Alejandro,

Gracias por tu respuesta.

El motivo por el que encripto esos valores es porque contienen el id del administrador, a partir del cual realizo todas las consultas posteriores a la base de datos, si no lo encripto, es posible que el admin1 (Id 1) modifique el valor de dicha cookie por el de admin2 (Id 2), pudiendo acceder a toda la información de dicho admin.

En cuanto al problema que planteaba, ya esta solucionado, lo que pasaba era que al desencriptar el valor, automaticamente lo cargana en la variable de sesión, he añadido un session_write_close(); despues del session_start() y ya puedo trabajar perfectamente con las variables.

Un Saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar