• User Attivo

    recupero password esadecimale da mysql

    Salve a tutti,
    vorrei cortesemente porvi un quesito: ho creato un tabella utenti dove la password viene inserita e nascosta in esadecimale, penso, tramite una funzione mysql:

    code:
    
     			mysql_query("INSERT INTO users (nick, pssw, nome, email, data_reg) VALUES ('$sy_nick',PASSWORD('$sy_pssw'),'$sy_nome','$sy_email',NOW())");
    

    Adesso ho creato il modulo di recupero password, ovvero l'utente, nel caso dimenticasse la password, può inserire l'email di registrazione e i dati vengon o recuperati dal db e inviati all'indirizzo di posta. Il recupero avviene tramite query e assegnazione ad un array:

    code:
    
     		$query=mysql_query("SELECT * FROM users WHERE email='".$_POST['email']."'");
    		$valori=mysql_fetch_array($query); 
    

    Il problema è che la password senza una funzione inversa(che non so dove mettere)resta criptata e non mi viene data, come faccio a riconvertirla in modo che l'utente possa leggerla?Grazie a tutti anticipatamente, saluti [clap]


  • Moderatore

    Attento:
    $query=mysql_query("SELECT * FROM users WHERE email='".$_POST['email']."'"); è il modo migliore per farti fare mysql_inj

    butto un codice a caso...
    se $_POST è qualcosa tipo:

    asd' OR 1=1' la query funziona.

    1. fai un escapa degli apici.
    2. controlla con una regex che $_POST['email'] sia un'email valida 🙂

    :ciauz:

    Ps per poter recuperare una password, devi usare un algoritmo a due vie.
    Ora non vorrei dire castronerie, ma PASSWORD() è ad una via, e quindi non si può fare. 🙂 :ciauz:


  • User Attivo

    Grazie per il consiglio, avevo dimenticato per sbaglio, ho risolto così: $sy_email=strip_tags($_POST['email']); $sy_email=mysql_escape_string($sy_email);tuttavia mi rimane il problema della password, non so come restituire agli utenti la loro password! Ho fatto le prove inverse con questa query```
    select *, PASSWORD('password')AS decri_password FROM users WHERE email='$sy:email'"