Ver Mensaje Individual
  #15 (permalink)  
Antiguo 11/12/2012, 16:45
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como recuperar password en sistema que gestiona cuentas de usuarios

como no vas a dar la opcion de recuperar la contraseña antigua podemos usar un hash de una sola via de un sentido sin vuelta

te recomiendo : crypt en lugar de md5 muy inseguro

http://es.php.net/manual/es/function.crypt.php

una cosa que ami personalmente me gusta es poner una tabla con los campos user y pass , el pass hasheado con crypt y el usuario igualmente , y te preguntaras como muestro el usuario entonces ¿? otra tabla con los datos del usuario ,en el momento del registro guardamos el user hasheado en la tabla de login por ejemplo y el pass , el user sin hashear en la tabla de los datos

a tus preguntas:

obvia lo de guardar la hora en la bd (no es necesario)

en el momento de envio del email se manda en el link para su posterior comprobacion el time() justo en el momento del envio con time()

una vez el user haga clik en el link se envia a una pagina donde deberas verificar que el campo time no ha superado el tiempo que tu creas conveniente como para caducar

link

verify_account.php?pass=nvujnervnruineinrveriegnre oivns&time=time()

en el momento del clik

verificamos si existe pass y time

y ya verificamos la caducidad

Código PHP:
Ver original
  1. if($_GET['time'] )
  2.  
  3. $controlador = 3600; //sg  1 HORA DE CADUCIDAD  
  4. $controlador_final = $_GET['time'] + $controlador ;
  5. $time_actual= time();
  6.  
  7. if($controlador_final >= $time_actual)
  8. {
  9.  
  10. ahora verificamos el password con el de la bd
  11.  
  12. }else{
  13.  
  14. echo 'link caducado';
  15.  
  16. }


ademas de todo esto pondria una capa de seguridad extra con un token , ninguna medida esta de mas

Última edición por webankenovi; 11/12/2012 a las 16:54