io farei così, crei una tabella sql RecuperoPassword con i seguenti campi
id,email, nuova password, idgenerato, data
dove l'email è l'email del richiedente nuova password
la nuova password e idgenerato li crei te casualmente
data è la data della richiesta della nuova password
quando qualcuno ti richiede una nuova password riempi una riga della tabella e mandi la mail con il link di conferma del tipo
http://www.tuosito.com/confermamail....&id=idgenerato
controlli che email e idgenerato siano presenti in tabella (in teoria l'id generato casualmente lo può aver letto solo il propretario della casella di posta) se è così cambi la password. Ogni tanto puoi annullare le richieste in tabella troppo vecchie per quello controlli la data di richiesta della nuova password

Rispondi quotando