Dopo i tuoi commenti, sembra strano che tu abbia dei duplicati se in realtà stai utilizzando /dev/urandom
come origine di entropia e ID di sessione sufficientemente lunghi.
- Sei sicuro che PHP sia configurato correttamente ? A partire da PHP 5.4.0, le impostazioni predefinite di PHP sono ora protette, ma accade che alcune impostazioni del server storico rimangano nel tempo e riducano la sicurezza rispetto ai valori predefiniti correnti (PHP potrebbe non utilizzare effettivamente
/dev/urandom
, oppure potrebbe raggiungere poche entropia da esso),
- Sei sicuro che il problema non sia stato causato da un problema di terze parti, come la correzione della sessione ? Tale errore, ad esempio, potrebbe verificarsi se l'ID sessione può essere passato come parametro URL e quell'URL che contiene la sessione viene condiviso in qualche modo, esplicitamente (l'URL inviato da una persona a un'altra) o in qualche modo inaspettato (memorizzazione nella cache del contenuto in il server o un proxy, per esempio).
/dev/urandom
può essere generalmente considerato come fonte di entropia affidabile. Se per caso vuoi comunque indagare, puoi utilizzare lo strumento ENT
per questo scopo. Puoi trovare un esempio di utilizzo in questa pagina .
Un rapido controllo del file è stato eseguito per garantire che non ci sia stato alcun conflitto durante il test di generazione dell'ID di sessione:
LC_ALL=C sort /path/to/sample_file | uniq -d
Sostituisci /path/to/sample_file
con il tuo file attuale contenente l'ID della sessione generata, dovrebbe generare tutte le voci duplicate. In circostanze normali, pertanto, non dovrebbe produrre output.
Verificare la reale qualità di sicurezza di questi file sarebbe più complicato. Un ID di sessione non deve essere solo univoco, ma non deve essere prevedibile , ciò significa che deve essere distribuito in modo uniforme e casuale su uno spazio sufficientemente ampio di possibilità. Questo potrebbe essere difficile da dimostrare adeguatamente. Come ho detto nel mio commento, ci sono già stati una discussione su tale argomento , e mentre alcuni strumenti di sicurezza delle applicazioni Web offrono l'analisi dell'ID di sessione, la conclusione sembrava essere il modo più affidabile per analizzare il codice dell'applicazione e la configurazione stessa.