Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/12/2008, 09:56
superdober
 
Fecha de Ingreso: agosto-2007
Mensajes: 248
Antigüedad: 17 años, 5 meses
Puntos: 1
De acuerdo Verificacion Para Evitar Robo Sesion en PHP

Hola como estais, he generado un script que en principio evita el robo de una sesión en PHP.

1) Me gustaría saber si tengo que incluirlo en todos y cada uno de mis scripts y en tal caso como lo podría hacer. (que uso: include, require, include_once o require_once ???)

2) También si veis que algo se puede mejorar me gustaría que lo comentarais aqui para que todos aprendamos.

Muchas Gracias ¡¡¡


Código:
<?php

//La sesion caduca a las 2 horas
ini_set("session.gc_maxlifetime","7200"); 
ini_set("session.cookie_lifetime", "7200");

//Inicio de Sesion
session_start(  );

//Genero codigo de seguridad a partir del navegador y de la IP del usuario
$codigo_seguridad = md5($_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR']);

//Si o bien el nombre de usuario o la contraseña o ambos no existen genero un nuevo
//codigo de seguridad asignandoselo a la variable superglobal $_SESSION 	  
if ((empty($_SESSION["sesion_nombre_usuario"])) || (empty($_SESSION["sesion_nombre_usuario"])))
  {
    session_regenerate_id(  );
    echo ("Nueva sesion, guardando codigo de seguridad.");
    $_SESSION["codigo_seguridad"] = $codigo_seguridad;
  }

//Comparo si el codigo de seguridad de la sesion es igual al del usuario
//Si son distintas le redirijo a una pagina en la que muestro Acceso Prohibido

if (strcmp($_SESSION["codigo_seguridad"], $codigo_seguridad) !== 0) 
  {
    session_regenerate_id(  );
    header("Location: acceso_prohibido.php");
    $_SESSION = array(  );
    $_SESSION["codigo_seguridad"] = $codigo_seguridad;	
  }

// Y en otro caso quiere decirse que el usuario es el correcto y por tanto
//la conexion ha sido verificada y es todo correcto

else 
  {
    echo ("Conexion Verificada!");
  }

?>