sessions
-
Hallo Leute!
Ich schreibe eine Library um Sessions damit zu verwenden.
Das Problem ist: wenn man jetzt eine Session erstellt, soll meine Library automatisch bestimmen ob die session_id per get oder per cookie 'gespeichert' werden soll.
doch wie geht das?
Meine bisherige Idee:
sollte eine neue session erstellt worden sein, dann wird sowohl im cookie, als auch über get die ID übergeben.
Bei jedem erstellen einer existierenden session wird zuerst geschaut ob die session_id im cookie steht oder im GET.wenn sie im cookie steht, wird GET ganz ignoriert und wenn sie nur im GET steht, dann wird cookie ganz ignoriert.
nur scheint mir das etwas brutal zu sein. deshalb meine frage:
wie würde es besser gehen?
wie macht zB PHP das?
kennt jemand eine Library die open source ist und auch sessions unterstützt (sprache egal)
und nein, ich will mich nicht durch den PHP source quälen.danke schonmal!
-
Ich bin mir zwar gerade nicht ganz sicher, aber ich meine, dass PHP auch in dieser Weise vorgeht (kann ich ja aber durch einen expliziten Aufruf von session_id unter Angabe der zu verwendenden ID selbst beeinflussen)
Ansonsten spielt vielleicht der Schlüssel variables_order bzw. gpc_order (veraltet) eine Rolle dabei, welcher Wert dann wirklich verwendet wird (oder gilt das nur bei register_globals = on ); This directive describes the order in which PHP registers GET, POST, Cookie,
; Environment and Built-in variables (G, P, C, E & S respectively, often
; referred to as EGPCS or GPC). Registration is done from left to right, newer
; values override older values.
variables_order = "GPCS"
-
Ich mach das in meiner Lib so.
Ich versuche ein Cookie zu erstellen. Sollte dies nicht gehen übergebe ich per GET.Habe 2 Varianten.
Einmal per MYSQL und einmal per File (wie es ja PHP macht)
Beim initialisieren muss man dann die Variablen einer map übergeben und bei jedem aufruf der Libfunc wird diese gefüllt.
Ich erstelle übrigens die Sessionid nicht so kompliziert wie du.
Ich nehme einfach die IP und die Zeit und dann MD5.
Die wahrscheinlichkeit das gleichzeitig von der gleichen IP zur gleichen eine Session gestartet wird halte ich für sehr gering.
-
@Unix-Tom:
das ist aber IMHO nicht besonders sicher.
ich brauch nur die IP der Person und die dungefähre uhrzeit und schon kann ich die session übernehmen (für brute force ziemlich leicht zu knacken)
-
Naja die uhrzeit ist so eine Sache.
Wie woillst du die tickcounts nachvollziehen
Mit Uhrzeit meinte ich ja nicht nur 12:00:00 Uhr
Eine 100% sicher Variante gibt es sowieso nicht
Auserdem braucht der USER erstmal die gleiche IP