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.