Riusare lo stesso ID di sessione è necessariamente negativo?

3

La domanda è relativa alla gestione ID sessione in una particolare app web basata su php.

L'app web utilizza lo stesso ID di sessione per ogni sessione per un utente fisso. Quindi, dopo la disconnessione dell'applicazione, la volta successiva che l'utente ha effettuato l'accesso, lo stesso ID di sessione viene rilasciato come cookie. Tuttavia, mentre l'utente non ha effettuato l'accesso, l'applicazione non consente l'utilizzo del cookie (il rinvio delle richieste HTTP con lo stesso cookie viene inoltrato alla pagina di accesso).

Questa è considerata una cattiva pratica di sicurezza? Che ne dici se lo stesso ID di sessione viene utilizzato per tutti utenti?

    
posta wu7 13.08.2013 - 01:46
fonte

2 risposte

9

Il rollover del proprio sistema di gestione delle sessioni è estremamente pericoloso, perché molto può andare storto con una sessione . In PHP dovresti usare session_start() e $_SESSION superglobal.

Usando lo stesso Id della sessione ogni volta che l'utente esegue l'accesso, non ha senso cambiare la password. C'è un token che consente sempre l'accesso. Un utente malintenzionato potrebbe comprendere questa sessione con XSS o a causa della sicurezza di livello di trasporto insufficiente e quindi avrà sempre accesso al sistema.

Utilizzare la stessa sessione per ogni utente sconfigge lo scopo, se hai bisogno di uno stato globale, usa un database

    
risposta data 13.08.2013 - 02:18
fonte
7

Accordati con Rook, ma lui / lei non sottolinea perché la tua proposta è intrinsecamente errata quando invalidi lo stato autenticato della sessione.

C'è almeno una vulnerabilità specifica che viene creata: l'ID di sessione è ora prevedibile. Considera: Alice usa il sistema dal client A - dopo aver effettuato il logout, potresti aver contrassegnato la sessione come non più validata, ma il token di sessione potrebbe essere ancora recuperabile da questo client. Chuck arriva e estrae l'id della sessione dal client A. Non può accedere al sistema perché la sessione è contrassegnata come non autenticata. Ma poi Alice si riavvia dal client B - la sessione non è più bloccata e Chuck ha accesso gratuito.

How about if the same session-ID is used for all users?

WTF ??? !!!!

Quindi non è un ID di sessione.

    
risposta data 13.08.2013 - 17:02
fonte

Leggi altre domande sui tag