Domanda

Ho appena implementato una funzione "ricordati di me" per un login utente su un sito web. La maggior parte consiglio era quello di avere l'ID utente memorizzate in un cookie, e quindi avere qualche chiave casuale lungo, unguessable. Se entrambe queste corrispondono, l'utente viene considerato autenticato.

significa avere due stringhe effettivamente aiutare? una chiave più non avrebbe fatto esattamente la stessa cosa?

In altre parole, non sono due chiavi ugualmente suscettibili ad attacchi come una chiave più a lungo? (Immagino che sarebbe la lunghezza totale delle chiavi, indipendentemente dal numero che avete)

Nota: Ci potrebbero essere alcuni problemi di efficienza di query DB anche qui, per esempio, guardando un grande UUID nel DB non è facile come guardare un piccolo numero. (Su una nota tangenziale, Gmail utilizza un numero a sei cifre come il loro accesso di una volta pedina insieme al nome utente.)

È stato utile?

Soluzione

discussione robusta di che in questo SO filo .

  

... l'utente è considerato autenticato.

Nel caso probabilmente letto autenticato ma con authoriziation limitata.

Per commento: Un po 'più sicuro visto che è un uso di volta ed è difficile da indovinare. Quindi, se il cookie è compromessa, l'attaccante deve agire in fretta o il token verrà invalidata dalla loging utente legittimo nel mentre l'ID utente non può cambiare per un lungo periodo di tempo.

Altri suggerimenti

Non sono un esperto di crittografia, ma fino a quando si controlla per i tentativi bruta forzatura, si dovrebbe essere in grado di utilizzare una breve chiave (come 6 cifre di Gmail). La vera vulnerabilità è persone che ascoltano quando un utente accede a (ad es. SideJacking).

In siti che ho creato in precedenza ho fatto uso di un user_id e un hash salata della password dell'utente. Il motivo principale che ho usato due campi per autenticare un utente è perché mi ha salvato la briga di aggiungere un altro tavolo (e quindi complicando la struttura del database.) Con il <=> anche essere memorizzati nel cookie che potevo fare un look-up indicizzati nella tabella utenti ed efficacemente corrispondere l'hash salata per l'utente. Naturalmente si potrebbe concatenare sia l'user_id e l'hash in un valore e solo memorizzare che nel cookie.

Se v'è solo una stringa casuale unguessable allora si dovrebbe avere una tabella separata per associare la stringa casuale con un'user-id e fare un altro look-up per quel particolare utente.

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