Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/02/2013, 10:41
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Control de acceso (¿vulnerabilidad?)

tienes que identificar que el propietario de la session sea el mismo del que la creo, tan solo con un identificador de session no es suficiente ya que puede ser alterado y las consecuencias que conlleva , tendras que crear alguna session que identifique al usuario en el momento de crear la session ya sea con las cabeceras , ips , etc....

un ejemplo sencillito

$_SESSION['admin'] = sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].'CLAVE');

Código PHP:
Ver original
  1. <?php
  2.       if ( isset($_SESSION['admin']) and $_SESSION['admin'] == sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].'CLAVE'))
  3.         echo "Usuario con acceso a administración";
  4.     ?>

Es tan solo un ejemplo

user agent y la ip igualmente puede ser alterado


tambien puedes crear una cookie ademas de la cookie de session

Código PHP:
Ver original
  1. $_SESSION['admin'] = sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].'CLAVE');
  2. setcookie('ID_ADMIN',session_id());
  3.  
  4. <?php
  5.       if ( isset($_SESSION['admin']) and  $_SESSION['admin'] == sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].'CLAVE') and isset($_COOKIE['ID_ADMIN']) and $_COOKIE['ID_ADMIN'] == session_id())
  6.         echo "Usuario con acceso a administración";
  7.     ?>

Última edición por webankenovi; 08/02/2013 a las 11:03