Qual è il metodo preferito per la creazione consapevole dei cookie di accesso [duplicato]

0

Sto lavorando su una webapp che utilizza solo localStorage ( link ) per consentire all'utente di creare un account server e avere cose sincronizzato su HTTPS al server in modo che la webapp non sia incatenata a un singolo computer.

Sto incontrando un pezzo di muro di mattoni su un pezzo di sicurezza. Memorizzando il testo in chiaro, il cookie non crittografato è una bandiera rossa, ma ho difficoltà a creare un accordo che non sembra isomorfo per la memorizzazione di un cookie non crittografato. Se memorizzo un hash della password più un segreto, solo il mio server potrebbe essere in grado di generare un cookie accettato, ma qualcuno che accede al cookie potrebbe anche avere la password di testo in chiaro. Il meglio che ho potuto pensare è di aggiungere la data di scadenza ISO8601 al segreto e alla password, e poi fare in modo che il server la confronti con gli hash calcolati da oggi a n-1 giorni in futuro. E a quel punto ho quello che sembra una copia in chiaro della password che va bene solo per così tanto tempo ... meglio, ma non molto meglio.

Qual è il modo migliore per rendere un cookie che sia trasparente dal punto di vista dell'utente e inutile per un cracker come fattibile?

    
posta JonathanHayward 28.08.2012 - 21:43
fonte

1 risposta

0

Al login, crea un valore casuale che è archiviato nel tuo database con una scadenza a tua scelta (1 giorno, 1 anno, qualunque sia). Passa quel valore casuale al browser del cliente con la scadenza corrispondente della tua scelta (solo sessione, anni, ecc.)

Ora, quando il cliente visita una pagina, trasmetterà il cookie casuale al server che non ha alcuna connessione con la propria password. Se verifichi che il cookie corrisponda a quell'utente nel tuo database, allora sono autenticati.

Ciò consente anche a te (e ai tuoi utenti se lo implementa) di uccidere tutte le sessioni indipendentemente da una modifica della password. Significa anche che dovresti implementare il codice per uccidere tutte le sessioni con una modifica della password.

    
risposta data 29.08.2012 - 05:30
fonte

Leggi altre domande sui tag