Ver Mensaje Individual
  #9 (permalink)  
Antiguo 03/06/2013, 15:21
mumraa
 
Fecha de Ingreso: marzo-2012
Mensajes: 102
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Recuperar contraseña - Get -> Email y Codigo

la forma de evitar los bots me parece genial y creo que la implementare. Ya incluso tenia un recaptcha para solicitar el mail de recuperacion pero creo que pondre al enviar la respuesta al mail para ver el resultado si es exitoso..


Ahora, sobre el hash no creo estar entendiendo bien las cosas: el concepto de hash, estoy viendo videos y leyendo pero algo no me queda)..

lo que venia haciendo (al margen del algoritmo) es lo que sigue:

Código:
$codigo = md5(uniqid(rand(), true));
// insertaba $codigo en la base de datos
//luego
$link = 'activacion.php?email=$email&key=$codigo'

// Y en su respuesta
if($codigo == $_GET['key'])
Y aqui es adonde creo estar mal. Estoy simplemente, generando un numero aleatorio, guardando y enviandolo para comprobar luego el mismo..



quizas deberia estar haciendo en realidad algo como..

Código:
$codigoAleatorio = md5(uniqid(rand(), true)); // Lo guardo en la base

$codigoDeActivacion = md5($idusuario.$email.$codigoAleatorio);

$link = 'activacion.php?id=$idusuario&email=$email&key=$codigoDeActivacion'


// LUEGO POR GET
// IF id, email y key estan en la url

if($codigoDeActivacion === md5($_GET['idusuario'].$_GET['email'].$codigoTraidoDeLaBase))
asi, el atacante deberia acertar en la url no solo el email y un codigo aleatorio, sino tambien el id y la composicion de dicho codigo?