Foros del Web » Programando para Internet » PHP »

al autentificarme que no me deje ver las demás sesiones

Estas en el tema de al autentificarme que no me deje ver las demás sesiones en el foro de PHP en Foros del Web. Compañeros, hoy me di cuenta que al iniciar sesión en mi sistema de autentificación me surge un inconveniente, ya que si el usuario conoce el ...
  #1 (permalink)  
Antiguo 18/02/2014, 11:13
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 2 meses
Puntos: 0
Pregunta al autentificarme que no me deje ver las demás sesiones

Compañeros, hoy me di cuenta que al iniciar sesión en mi sistema de autentificación me surge un inconveniente, ya que si el usuario conoce el link de acceso de otras áreas igual se puede meter sin problema, podrían orientarme para saber como evitar este inconveniente... cualquier aporte se los agradeceré muchisimo
  #2 (permalink)  
Antiguo 18/02/2014, 11:31
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: al autentificarme que no me deje ver las demás sesiones

Cada sección de tu sistema debe tener un id, y cada usuario debe tener una lista de id's o llaves de las secciones a las que puede entrar, de modo que cuando un usuario quiera entrar a cierta sección, dentro de dicha sección se verifique si el usuario tiene o no permiso para entrar.

Como consejo, al momento de hacer el login guarda en una variable de sesión las secciones a las que puede entrar el usuario.
  #3 (permalink)  
Antiguo 18/02/2014, 12:02
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: al autentificarme que no me deje ver las demás sesiones

tengo este codigo que es la autentificacion.php a donde manda mi formulario login

<?php
include "conexion.php";
if (isset($_POST["pass"])) {
$user = $_POST["user"];
$pass = $_POST["pass"];
if($user==NULL|$pass==NULL) {
echo "<script language=\"JavaScript\">";
echo "alert(\"Debes de llenar todos los campos.\");";
echo("location.href='login.php'");
echo "</script>";
}
}
if(isset($_POST['user']) && $_POST['pass']){
$user = $_POST['user'];
$pass = $_POST['pass'];
$query = " select `user` , `pass` , LEFT( `nom_dep` , 2 ) as dep FROM `usuarios` WHERE `user`='".mysql_real_escape_string($user)."' AND `pass`='".mysql_real_escape_string($pass)."'";
$result = mysql_query($query) or die("Imposible verificar al usuario por el error: " . mysql_error());
$dato = mysql_fetch_array($result);
if(mysql_num_rows($result) == 1){
//usuario y contraseña válidos
//session_name("loginusuario");
//asigno un nombre a la sesión para poder guardar diferentes datos
session_start();
//session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0);
//cambiamos la duración a la cookie de la sesión
// inicio la sesión
$_SESSION["autentificado"]= "SI";
$_SESSION["nombre"]= $dato['user'];
$_SESSION["dep"]= $dato['dep'];
//defino la sesión que demuestra que el usuario está autorizado
$_SESSION["ultimoacceso"]= date("Y-n-j H:i:s");
//defino la fecha y hora de inicio de sesión en formato aaaa-mm-dd hh:mm:ss
header ("Location: acceso.php");
}else {
//si no existe le mando otra vez a la portada
header("Location: login.php?errorusuario=si");
}
}
?>

acceso.php

<?php include("si_acceso.php");?>




<?php

if ($_SESSION["dep"] == "Al") {
//si no existe, va a la página de autenticacion
header("Location: Alumbrado_.php");
}

else
{
if ($_SESSION["dep"] == "Ba"){
header("Location: Bacheo_.php");
}
else{
if($_SESSION["dep"] == "Li"){
header("Location: Limpia_.php");
}

else{
if($_SESSION["dep"] == "Pa"){
header("Location: Parques_.php");
}


else{
if($_SESSION["dep"] == "At"){
header("Location: AtencionEscuelas_.php");
}

else{
if($_SESSION["dep"] == "Se"){
header("Location: Seguridad_.php");
}



else{
if($_SESSION["dep"] == "Co"){
header("Location: Contraloria_.php");
}

else{
if($_SESSION["dep"] == "An"){
header("Location: ControlAnimal_.php");
}

else{
if($_SESSION["dep"] == "In"){
header("Location: Informes_.php");
}
else{
if($_SESSION["dep"] == "Me"){
header("Location: MedioAmbiente_.php");
}

else{
if($_SESSION["dep"] == "Fu"){
header("Location: Fugas_.php");
}

else{
if($_SESSION["dep"] == "Go"){
header("Location: GobiernoCom_.php");
}
else{
if($_SESSION["dep"] == "DI"){
header("Location: Dif_.php");
}
}
}
}
}

}
}
}

}

}


}

}
}


?>
  #4 (permalink)  
Antiguo 18/02/2014, 13:26
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: al autentificarme que no me deje ver las demás sesiones

Cita:
tengo este codigo que es la autentificacion.php a donde manda mi formulario login
Ajá.... ¿comprendiste el mecanismo de control que te sugerí? ¿tienes dudas para implementarlo?

En cada sección de tu web debes validar si el usuario tiene o no permiso de acceder, no sólo redirigirlo según sus permisos, que por cierto deberías cambiar tanto if-else por switch
  #5 (permalink)  
Antiguo 18/02/2014, 14:10
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: al autentificarme que no me deje ver las demás sesiones

hola gracias por contestar, y si tengo duda de como implementarlo, y tomare en cuenta lo de los if, saludos y muchas gracias nuevamente

Etiquetas: sesiones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:18.