Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/05/2008, 12:04
Avatar de farra
farra
 
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 18 años, 8 meses
Puntos: 20
Seguridad en variables de sesion...

Que tan seguras son las variables de sesion?

Código PHP:

if (!isset($_SESSION)) {
  
session_start();
}
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { 
  
// For security, start by assuming the visitor is NOT authorized. 
  
$isValid = False; 

  
// When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  
if (!empty($UserName)) { 
    
// Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    
$arrUsers = Explode(",", $strUsers); 
    
$arrGroups = Explode(",", $strGroups); 
    if (
in_array($UserName, $arrUsers)) { 
      
$isValid = true; 
    } 
    
// Or, you may restrict access to only certain users based on their username. 
    
if (in_array($UserGroup, $arrGroups)) { 
      
$isValid = true; 
    } 
    if ((
$strUsers == "") && true) { 
      
$isValid = true; 
    } 
  } 
  return 
$isValid; 
}


$MM_restrictGoTo = "login.php";
if (!((isset(
$_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  
$MM_qsChar = "?";
  
$MM_referrer = $_SERVER['PHP_SELF'];
  if (
strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset(
$QUERY_STRING) && strlen($QUERY_STRING) > 0) 
  
$MM_referrer .= "?" . $QUERY_STRING;
  
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  
header("Location: ". $MM_restrictGoTo); 
  exit;
}


$ID=GetSQLValueString($_SESSION['ID'], "int");

$colname_persona = "-1";
if (isset(
$_SESSION['ID'])) {
  
$colname_persona = GetSQLValueString($_SESSION['ID'], "int");
}
mysql_select_db($database_area, $conexion);
$query_persona = sprintf("SELECT User_name FROM usuarios WHERE User_ID = %s ", $colname_persona);
$persona = mysql_query($query_persona, $conexion) or die(mysql_error());
$row_persona = mysql_fetch_assoc($persona);
$totalRows_persona = mysql_num_rows($persona); 

mirando este codigo que va en todas las paginas restringidas...

es posible que un usuario ponga la variable de sesion ID el Id que quiera y se loguee como cualquier usuario? o solo puede modificar el $_SESSION['ID'] en la pagina de login...?