(mi ha sorpreso che questa domanda non è stata posta su Stack per ora, ma ho fatto qualche ricerca e non ho trovato nulla oO)Perché dovrei usare l'ID di sessione nei cookie invece di memorizzare la password di accesso e (con hash) nei cookie?
Sto lavorando su webapp basata sui servizi e mi chiedo cosa sia il modo migliore per gestire gli accessi degli utenti. Finora ho:
- Quando l'utente effettua il login, fornisce credito. La password viene salata e sottoposta a hash in locale, quindi viene trasmessa al server su POST (in modo che gli utenti non possano recuperare la password originale, ad esempio per controllarli negli altri siti)
- Login e password con hash vengono memorizzati nel cookie con TTL di 15 minuti (revocato ogni singola webaction)
- Passwod è salato sul server e sottoposto ad hash di nuovo, e rispetto alla password memorizzata nel database (quindi, le password sono double hash con diversi sali, questo è per qualcuno che si interromperà nel database - non saranno ancora in grado di recuperare credenziali di accesso)
- L'utente può eseguire al massimo 3 tentativi di accesso per 5 minuti dal singolo IP
- Gli utenti ottengono informazioni sull'ultimo riuscito e unsu ccessful tentativi di accesso a fianco con data e IP
qualcuno aveva notato che è meglio per memorizzare unico ID di sessione, invece di una password hash in biscotto e mi chiedo il motivo per cui è così importante - se qualcuno annusare i pacchetti, che non è una sessione importa id o no - possono ancora ottenere pacchetti dal login con tutti i dati necessari per porsi come utenti legittimi e accedere autonomamente. Quindi ci sono altri vantaggi dell'approccio session-id memorizzato rispetto alla memorizzazione di login e hashed-password in cookie apprapool?
I'm rehashing password di nuovo, lato server. C'è una doppia password hash nel database, quindi non è possibile ottenere la password single-hash, che è richiesta per l'accesso – PiotrK
@PiotrK è ancora un'idea orribile, non scrivere il proprio gestore di sessione. – rook
Volevo descrivere il mio problema nel modo più generico possibile per essere utile alla comunità, ma la situazione è leggermente diversa: sto utilizzando Flash come client e sta facendo chiamate HTTP e ricevendo dati in formato XML semplice. Non posso usare la sessione standard, perché non ho GET o COOKIE nel mio codice.Mi riferisco solo alle variabili mantenute dal client Flash come "cookie", perché si comportano come tali. Ecco perché non posso usare il gestore di sessione PHP e devo scrivere il mio :) – PiotrK