Domanda

Ho un sistema di login. Come posso implementare un sicuro ricordi di me sistema utilizzando i cookie.

Quale valore dovrebbe devo conservare in username e password biscotto, ma come posso assicurarla?

È stato utile?

Soluzione

definire A Salt utente foreach in dB poi

sulla impostazione

$expire_time = time() + 2 * 7 * 24 * 3600; // 2 weeks exp time

setcookie( 
    "rememberMe",
    crypt($username, $salt),
    $expire_time,
    '/'
);

sulla convalida

$_COOKIE['rememberMe'] === crypt($username, $salt)

Altri suggerimenti

Forse si potrebbe creare una stringa lettera 16 car / numero che viene associato a un database con l'utente e l'indirizzo MAC in modo che (a patto che le persone non stanno cercando troppo duro e spoofing Mac) solo quella macchina può accedere .

Forse si dovrebbe memorizzare (nel DB) visitatore IP, User Agent, fuso orario o plugin installati. Qualcosa che potrebbe essere facile da ottenere utilizzando Javascript, dal momento che ottenere l'indirizzo MAC potrebbe essere un problema.

Poi si può facilmente verificare se l'utente ha lo stesso IP, UA, fuso orario o plugin come l'ultima volta :) Oppure si potrebbe utilizzare MaxMind per controllare la sua posizione e confermare se si sta usando corretto fuso orario. Se c'è qualcosa di sospetto si dovrebbe gettare le credenziali di cookie.

non c'è molto ad esso ... non lasciate che i file della sessione vengono ripulite (ini impostazione session.gc_probability = 0), e cambiare il cookie di sessione da temporaneo a permanente (session.cookie_lifetime = however_long_you_want_the_user_to_be_remembered impostazione ini).

Naturalmente, si sarebbe probabilmente vuole finalmente ripulire i file di sessione stantio, così si potrebbe sperimentare una molto bassa probabilità della verificano pulizia, o fare un po 'di pulizia esterna. Ad ogni modo, fino a quando l'utente mantiene il cookie di sessione in giro e si mantiene il file di sessione in giro, essi saranno "ricordati".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top