• User

    Login da email ricevute

    Ciao a tutti,
    sto facendo uno script che invia una email agli utenti con un link e quando gli utenti cliccano sul link di questa email sono reindirizzati a una certa pagina del sito loggati senza fare il login.
    Volevo sapere quali sono i metodi che vengono considerati più sicuri in questi casi?
    il metodo che ho utilizzato io è linkare dall'email verso uno script php che controlla:

    • la pagina dove reindirizzare l'utente
    • l'id dell'utente da loggare
    • un codice univoco per ogni utente che equivale a un md5 di un valore(diverso da nick e pass) che si trova all'interno del db diverso da ogni utente

    così che in questo modo se qualcuno vuole provare a fregare questo script è costretto a conoscere il valore assegnato all'utente presente nel db, su cui fare l'md5.
    Secondo voi questo può essere sufficente?
    Se ci fosse un modo per capire che un collegamento proviene da un click effettuato da una email sarebbe meglio ovviamente ma non penso sia possibile.
    Il problema è che se un utente si collega non dal suo pc e qualcuno che usa lo stesso pc dopo di lui potrebbe risalire al collegamento per loggarsi?

    Grazie a chi avrà il tempo e la voglia di rispondermi.


  • Moderatore

    Ciao 🙂

    beh, usando lo stesso pc dopo di lui c'è il rischio di "fregargli" il login. Potresti però passargli un'ulteriore variabile, ipotizziamo $daEmail .

    Di default tu assegni a questa variabile valore "0" .

    Quando clicchi dall'email il valore della variabile passa ad "1" .

    Ora, prima di farlo passare ad uno, fai un controllo per verificare l'attuale valore della variabile $daEmail . Se è zero, allora lo script continua, aggiorna la variabile ad uno e fa il login. Se è già uno, significa che il link in email è già stato cliccato e, quindi, rimanda ad una pagina di errore 🙂

    Spero di essere stato chiaro, se hai domande o dubbi fammi sapere 🙂


  • User

    @sitionweb said:

    Ciao 🙂

    beh, usando lo stesso pc dopo di lui c'è il rischio di "fregargli" il login. Potresti però passargli un'ulteriore variabile, ipotizziamo $daEmail .

    Di default tu assegni a questa variabile valore "0" .

    Quando clicchi dall'email il valore della variabile passa ad "1" .

    Ora, prima di farlo passare ad uno, fai un controllo per verificare l'attuale valore della variabile $daEmail . Se è zero, allora lo script continua, aggiorna la variabile ad uno e fa il login. Se è già uno, significa che il link in email è già stato cliccato e, quindi, rimanda ad una pagina di errore 🙂

    Spero di essere stato chiaro, se hai domande o dubbi fammi sapere 🙂

    Intanto grazie per avermi risposto in fretta,
    ho capito il concetto mi sembra tutto abbastanza chiaro. Però il problema è su come realizzarlo. Nel senso il problema è come faccio a riconoscere se un valore viene da un click dalla email o se proviene semplicemente dal request, ho provato a creare nella email un pulsante submit con un form cosi riesco a inviare dei valori hidden, però con il form le email vanno sulla posta indesiderata. Magari se puoi darmi qualche consiglio pratico su come realizzarlo tecnicamente, grazie!!