Buenas.
Cita:
Iniciado por Chico3001 Es altamente probable.... por lo que no vas a poder confiar en la direccion IP que leas, para resolverlo, hay que saber como se esta generando la sesion en la funcion session_regenerate_id, mientras tanto lo que yo hago es crear un token al azar y almacenarlo en una base de datos con una hora de salida, ese token lo asigno a la superglobal de session y lo comparo cada vez que el usuario entra, pero ademas se genera uno nuevo y se repite el ciclo, hasta que expire el tiempo de salida o el usuario decida salir...
Como el token varia cada vez que el usuario visita la pagina (aunque sea la misma) es muy dificil poder robarlo
Ese método no está mal, pero la optimización se va para el piso, estas enviando una SET COOKIE cada vez que el usuario visita una página, aparte que internamente (Ya sean archivos o MySQL (Véase
session_set_save_handler())) se tienen que actualizar los datos (ID de sessión etc), o lo que es peor, borrar y crear nuevamente.
Para robarte una sesión (
COOKIE en todo caso) hay dos maneras principales, capturandote el tráfico de la red en que te encuentras o con un XSS. El primero no lo hace todo el mundo y con SSL se soluciona, el segundo hoy en día se puede evitar con activar la opción
HTTP ONLY para la
COOKIE (Así evitamos obtenerla desde
document.cookie) ya que casi todos los navegadores los soportan (IE7+, Chrome, Firefox, Safari, Opera).
Por ejemplo si usamos sesiones, podemos luego de iniciarla usar
setcookie() y activar el parámetro o antes de usar
session_start() usamos
session_set_cookie_params(), el parámetro en ambas es (
bool $httponly = false).
http://us3.php.net/manual/en/function.setcookie.php
http://www.php.net/manual/en/function.session-set-cookie-params.php
Saludos.