Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/10/2014, 14:51
_vincen_
 
Fecha de Ingreso: abril-2010
Mensajes: 21
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Seguridad login con Cookies y API

Cita:
Iniciado por loncho_rojas Ver Mensaje
Pues esa respuesta que tú planteas es el problema de las Cookies mismas.. Quiero un auto a Diesel, pero me gustaría que no contamine.. uff... a eso voy. A menos que pienses de qué manera puede evitar que se roben las cookies.. además deberías averiguar cómo se roban Cookies, así te pones más tranquilo o más alerta... pero la cookie se almacena en la PC de una persona y a partir de ahi, ya pierdes el control.

Alguna vez se me ha ocurrido poner una pregunta tipo... MES y AÑO de nacimiento.. asi, al recuperar la Cookie el usuario deberá validar ese dato antes de loguearlo de vuelta.. el resultado fue excelente procedimentalmente hablando, pero mis usuarios dejaron de usar mi web XD
Hmm, pues se me ha ocurrido una cosa.. a ver que opinas..

Al hacer login..

Creo un token único con la ip del usuario

Código PHP:
Ver original
  1. $idusuario = $_POST['userid']; // "id" única de 17 caracteres y limpiada previamente :)
  2. $semillaip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  3. $token = md5($semillaip.$idusuario);
  4. setCookie("token",$token,time()+604800,'/'); //cookie 7 dias
  5. setCookie("idusuario",$idusuario,time()+604800,'/'); //cookie 7 dias
  6.  
  7.  
  8.  
  9. //Ahora para comprobar si el usuario esta logueado, hago lo siguiente:
  10.  
  11.  
  12.  
  13. $idusuariocookie = $_COOKIE[idusuario'];
  14. $semillaipcookie = $_SERVER['HTTP_X_FORWARDED_FOR'];
  15. $token = md5($semillaipcookie.$idusuariocookie);
  16.  
  17.  
  18. //Ahora comparo el token guardado en la base de datos (se guardó cuando el usuario hizo login) con el token generado ahora mismo.
  19.  
  20. //Si coincide = estas logueado, y mostramos contenido
  21. //Si no coincide = si no estas logueado te llevo a logout.php y destruimos sesion y cookie



Como lo ves? El cambio de ip puede cambiar cada 1 semana o cada 6 meses y con esto aumento la seguridad, verdad?