Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/02/2013, 17:22
kies89
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 89
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Control de acceso (¿vulnerabilidad?)

Cita:
Iniciado por webankenovi Ver Mensaje
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.     ?>














En una sola palabra: Perfecto.

Lo que sí la IP no la usaré por el tema del uso de VPNs, proxies, etc.
Ya he creado una función y me queda retocarla. Y mañana si todo me va bien doy el tema como solucionado.
Una pregunta, sabes cómo podría hacer que para X página web (http://www.google.es , http://www.forosdelweb.com), es decir con la IP o DNS, enviar desde el navegador siempre el mismo UserAgent que será diferente al que lleves. Es decir, quiero que cuando entren a mi web tengan un UserAgent diferente, y mientras poder navegar por otras webs usando un UserAgent diferente. ¿Algún addon o configuración? Los addons que he probado no vienen con tal posible configuración.


Saludos! :)