Taille de session_id
Supposons que seeion_id est uniformément distribué et a une taille = 128 bits. Supposons que chaque personne sur la planète se connecte une fois par jour avec une nouvelle session persistante pendant 1000 ans.
num_sesion_ids = 1000*365.25 *7*10**9 < 2**36
collission_prob < 1 - (1-1/2**82)**(2**36) ≈ 1 - e**-(1/2**46)
≈ 1/2**46
Ainsi, la probabilité d'une ou de plusieurs collisions est inférieure à une sur 70 000 milliards. Par conséquent, la taille de 128 bits de session_id devrait être suffisamment grande. Comme mentionné dans d'autres commentaires, le session_manager peut également vérifier que le nouveau session_id n'existe pas déjà.
Aléatoire
Par conséquent, la grande question que je pense est de savoir si les session_id: s sont générés avec un bon pseudo-aléatoire. Sur cela, vous ne pouvez jamais être sûr, mais je recommanderais d'utiliser une solution standard bien connue et fréquemment utilisée à cette fin (comme vous le faites probablement déjà).
Même si les collisions sont évitées en raison de la vérification, le caractère aléatoire et la taille de session_id sont importants, de sorte que les pirates ne peuvent pas, d'une manière ou d'une autre, faire des suppositions qualifiées et trouver des session_id: s actifs avec une grande probabilité.