Voglio sapere se questo è uno schema adatto per la gestione delle sessioni. Una volta che l'utente si è autenticato con user / pass, il server restituisce session = MD5(SECRET + user_id)
(insieme ad altri campi) dove SECRET
è una stringa casuale (ad esempio 256 bit).
Quindi il client invia semplicemente l'hash session
ricevuto con ogni richiesta e il server lo convalida controllando che MD5(SECRET + user_id)
sia uguale all'hash ricevuto.
Quali sono i potenziali rischi qui? Suppongo che se l'utente è in grado di inviare user_id
vuote, è un passo avanti verso SECRET
, ma è facilmente evitabile. Inoltre, SECRET
potrebbe resistere ogni settimana circa.
(Nota: sto utilizzando Node come back-end per un'app mobile, quindi non ci sono browser e cookie).