Generalmente, il nome della tua sessione è PHPSESSID
(a meno che non lo si rinomina con session_name
- come hai proposto tu). Questo non offre alcun vantaggio in termini di sicurezza, ecco perché;
Hai menzionato che sei consapevole che le sessioni possono essere rubate, il che è corretto ( session hijacking ), sebbene il nome stesso ( Alice
, Bob
) non introduce alcuna misura di sicurezza (nemmeno avendo nomi diversi per ciascun utente).
Il session_name
è qualcosa che permetterà alla tua applicazione di fare riferimento alla sessione con un significato più ovvio. (Vale a dire: non ha senso se PHPSESSID
per contenere i dati di sessione su un modulo in termini di codice di scansione - PHPSESSID
non fa riferimento form
in alcun modo - questo è un esempio vago, ma tu capisci).
Quindi abbiamo identificato il rischio, ma perché avere una percentuale dinamica disession_name
non aiuta la sicurezza?
Generalmente, un dirottamento di sessione avverrà tramite XSS exploit. Questa vulnerabilità eseguirà Javascript sul computer client / target e invierà all'utente (l'utente malintenzionato) i propri cookie (i valori di sessione e i nomi delle sessioni sono inclusi. Avere il valore della sessione lo rende una torta completa).
L'utente malintenzionato si invierà i cookie creando una richiesta (in genere HTTP) a un server Web di sua proprietà con i dati post di document.cooke
In conclusione
Denominare la sessione in modo dinamico non è un difetto di sicurezza in sé. La sessione non "funzionerà" senza il valore corretto & nome. La tua preoccupazione principale dovrebbe essere l'associazione del valore della sessione al client, di;
- Associazione del valore della sessione all'agente utente dell'utente
- Associazione del valore della sessione all'IP degli utenti
Dovresti anche esaminare session_regenerate_id()
in modo che se un utente malintenzionato ottenga il tuo id di sessione, dovrebbe essere abbastanza veloce per dirottarlo prima che il valore si rigeneri.