Ver Mensaje Individual
  #52 (permalink)  
Antiguo 28/04/2013, 05:19
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: seguridad web

CAPITULO 7

SESSION HIJACKING

- es tan solo un ejemplo sencillo que usted puede mejorar.

- login

// una vez verificado el usuario procedemos a crear una cadena para su verificacion en el caso de que le secuestren una session intentar proteger la cuenta del usuario en la medida de lo posible .
Código PHP:
Ver original
  1. $rand = rand();
  2. $token = hash('whirpool',session_id().$rand);
  3. $credenciales = hash('whirpool', $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_ACCEPT_LANGUAGE'].$token);

// guardamos en la bd del usuario sus credenciales
// y guardamos en la cookie el rand

Código PHP:
Ver original
  1. setcookie("dmz_", base64_encode($rand));


comprobacion en todas las peticiones (paginas)

// antes deberemos verificar que el usuario esta logueado con la variable de session que usted haya creado para validar al usuario como logueado inmediatamente despues realizamos la 2 verificacion comprobara sus credenciales
Código PHP:
Ver original
  1. if(isset($_COOKIE['dmz_']))
  2.     {
  3.         $rand         = base64_decode($_COOKIE['dmz_']);
  4.         $token        = hash('whirpool',session_id().$rand);
  5.         $credenciales = hash('whirpool', $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_ACCEPT_LANGUAGE'].$token);
  6.          
  7.         // realizamos una consulta en la bd y extraemos los credenciales guardados en el login y comparamos
  8.      
  9.         if($row['credenciales'] == $credenciales)
  10.         {
  11.             // si es correcto generamos un nuevo session id y un nuevo rand y volvemos a guardar los credenciales
  12.      
  13.             session_regenerate_id();
  14.             unset($_COOKIE['dmz_']);
  15.      
  16.             $rand            = rand();
  17.             $token          = hash('whirpool',session_id().$rand);
  18.             $credenciales = hash('whirpool', $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_ACCEPT_LANGUAGE'].$token);
  19.      
  20.             // guardamos en la bd del usuario sus credenciales
  21.             // y guardamos en la cookie el rand
  22.      
  23.             setcookie("dmz_", base64_encode($rand));
  24.         }
  25.         else
  26.         {
  27.             exit('session hijacking');
  28.         }
  29.     }

Eso es todo sobre el capitulo 7 , si sabes otras maneras o mejorar lo expuesto o solo deseas mostrar tu opinion por favor exponlo .


Saludos nos vemos nuevamente con el capitulo 8

capitulos

1 - proteger directorios :link http://www.forosdelweb.com/f18/segur...ml#post4410846
2 - mensajes de error : link http://www.forosdelweb.com/f18/segur...ml#post4412140
3 - archivo de configuracion : link http://www.forosdelweb.com/f18/segur...ml#post4412159
4 - permisos y roles : link http://www.forosdelweb.com/f18/segur...ml#post4412275
5 - verificacion de archivos : link http://www.forosdelweb.com/f18/segur...ml#post4412596
6 - configuracion de sessiones : link http://www.forosdelweb.com/f18/segur...ml#post4416219