webentwicklung-frage-antwort-db.com.de

Was ist die Länge eines PHP Sitzungs-ID-String

Ich mache eine Tabelle in einer MySQL-Datenbank, um einige Sitzungsdaten zu speichern, einschließlich session_id. Wie lang sollte die Variable VARCHAR sein, um die session_id-Zeichenfolge zu speichern?

37
Gustavo

Abhängig von session.hash_function und session.hash_bits_per_character .

Weitere Informationen finden Sie auf der Seite session_id .

Je höher Sie session.hash_bits_per_character setzen, desto kürzer ist Ihr session_id wird durch die Verwendung von mehr Bits pro Zeichen. Das Mögliche Werte sind 4, 5 oder 6.

Wenn Sie sha-1 für Hashing verwenden (durch Setzen von Ini_set ('session.hash_function', 1)), werden die folgenden Sitzungszeichenfolgen

4 - 40 Zeichenfolge

5 - 32 Zeichenfolge

6 - 27 Zeichenfolge

31
sachleen

@sachleen Antwort ist nicht voll.
Nähere Informationen zur Länge der Sitzungs-ID werden beschrieben hier .

Zusammenfassung: 

128-bit digest (MD5)  
4 bits/char: 32 char SID    
5 bits/char: 26 char SID    
6 bits/char: 22 char SID

160-bit digest (SHA-1)
4 bits/char: 40 char SID    
5 bits/char: 32 char SID    
6 bits/char: 27 char SID

Und Beispiel für Regex zum Überprüfen der Sitzungs-ID: 

preg_match('/^[a-zA-Z0-9,-]{22,40}$/', $sessionId)
29
Andron

Es hängt von diesen Konfigurationseinstellungen ab: session.hash_function und session.hash_bits_per_character

Kürzere Sitzungs-ID-Längen haben eine höhere Kollisionswahrscheinlichkeit, dies hängt jedoch auch stark vom ID-Generierungsalgorithmus ab. Aufgrund der Standardeinstellungen sollte die Länge der Sitzungs-ID für die meisten Anwendungen angemessen sein. Bei Implementierungen mit höherer Sicherheit können Sie prüfen, wie PHP die Sitzungs-IDs generiert, und prüfen, ob sie kryptografisch sicher sind. Wenn dies nicht der Fall ist, sollten Sie Ihren eigenen Algorithmus mit einer kryptografisch sicheren Zufallsquelle ausführen.

4
John Woo

Die reguläre PHP-Installationslänge ist immer 26 (exmp: psprdaccghmmre1oo2eg0tnpe6)

0
Gocha

Ich weiß nicht, wo meine Anwendung verwendet werden soll, und richtete sie wie folgt ein: VARCHAR (127) Und hoffe, es wird für unbekannte MySQL-Benutzer großartig.

0
Abbas Uddin