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: 16 años, 1 mes
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...?