Perché i nomi utente in genere non sono memorizzati nei cookie di sessione e sono forniti con ID di sessione?

3

Ultimamente ho letto un po 'di sicurezza e mi sono meravigliato di questo. Perché gli ID di sessione non sono essenzialmente password temporanee collegate al nome utente? Entrambi vengono inviati dal client e controllati dal server con ciascuna richiesta.

Da ciò che posso capire sarebbe più difficile dirottare con la forza bruta (anche se forse non è sufficiente aggiungere più bit all'ID di sessione), aiutare a prevenire la fissazione della sessione e migliorare la registrazione per scoprire come / perché il sito è essere attaccato.

Anche se da quello che riesco a capire non è una pratica standard, quindi mi sento come se mi dovessi perdere qualcosa.

    
posta Matthew 02.07.2016 - 22:11
fonte

1 risposta

1

Un ID di sessione è una password temporanea che di solito è collegata a un nome utente. Le sessioni anonime sono anche strumenti utili in alcuni casi.

La memorizzazione del nome utente sul client non ha alcun fine utile. Se il server si fidava di queste informazioni, chiunque poteva ottenere il controllo cambiando il loro cookie username su "admin" o root. Quindi l'ID di sessione identifica l'utente e dimostra lo stato di autenticazione, ma solo tramite una ricerca indiretta memorizzata sul server.

Oltre alle sessioni anonime, vale anche la pena notare che i dati della sessione possono essere più di un semplice nome utente e stato di autenticazione - possono anche contenere informazioni sulle autorizzazioni (ad esempio ruoli) e le informazioni transazionali (all'interno dei limiti). Conservare le informazioni in modo sicuro non è facile su un supporto che non è protetto da manomissioni.

Non capisco come pensi che ciò renda più difficile il dirottamento / la fissazione delle sessioni; non hai spiegato il motivo e hai alcuni malintesi sul modo in cui le sessioni funzionano.

Sicuramente se i dati dei cookie fossero affidabili, sarebbe facile associare il vero identificatore di un utente malintenzionato alle richieste http, tuttavia i dati NON devono essere considerati attendibili.

Esistono altri modi per associare le identità alle richieste sul server Web: la maggior parte delle implementazioni SSO fornisce la populazione della nozione di server Web dell'utente autenticato. Le informazioni possono essere trasferite dall'applicazione (ad esempio mod_auth_memcookie) o indirettamente tramite altri vettori come i supercookies e il fingerprinting del browser.

    
risposta data 03.07.2016 - 00:18
fonte

Leggi altre domande sui tag