Mailinglisten-Archive |
Sven Geßner wrote: > Hallo, > > sorry wenn ich da nachhake, aber mich verwirrt das gerade und ich > probiere über die Threads zu lernen.... > >> Sebastian Mendel wrote: >>> ein session_start() wird nur dort benötigt wo auch tatsächlich auf >>> $_SESSION zugegriffen wird ... nicht auf jeder Seite, auch wenn eine >>> Session vorher gestartet wurde und diese später >> weiterlaufen soll, das >>> stört sich nicht. >> Dies bedeutet, dass die Funktion session_id() bereits vor >> oder ohne ein >> session_start() einen entsprechenden Wert zurückliefert, wenn eine >> Sessionid von einer vorigen Seite über eine der üblichen von PHP >> erkannten Methoden übergeben wurde? Das war mir so bisher nicht >> bewusst. Ich dachte, dass sämtliche Session-relevanten Funktionen >> erst nach einem session_start() reagieren. > > soweit ich das bisher verstanden habe, werden erst dann werte einer > session zurückgegeben wenn diese auch explizit gestartet wurde. > Daher würde davor session_id() einen leere Zeichenkette zurückgeben. > Woher soll PHP wissen welche ID er zurückgeben soll?? > > Ist das so richtig wie ich denke??? ja... Wenn keine session existiert, gibt session_id() einen leeren String zurück. > > Ich speicher i.Ü. in der Session noch weitere Benutzer-Daten. > also browser und IP. > Wenn diese dann nicht identisch sind beim neuen Aufruf der Session > wird diese sofort beendet. Und der Benutzer muss sich neu anmelden. > So umgehe ich m.E. das Problem wenn links weitergereicht werden. > (obwohl ich bei meinen neuen Anwedung auch nur noch Cockie´s nehme).. Dazu aus einer vorherigen mail dieses threads von mir mit Antwort von Niels: > Yannik Hampe wrote: >> Fazit: Cookies sind auch nicht sicherer ;-). >> >> Es gibt aber noch eine Methode, wie du dich vor den Auswirkungen des >> Bekanntwerdens der sessionid schützen kannst: >> Speicher die IP! >> Mit ip2long() kannst du die ip des Benutzers bequem in einem >> Longint-Feld einer DB (oder sonstwo) speichern und dann bei jedem Aufruf >> prüfen, ob die ip sich geändert hat. >> Nachteil: Wenn der Nutzer eine der berüchtigten in Deutschland üblichen >> 24h-Trennungen hat, dann kann er sich direkt ein einloggen. >> Ausserdem bekommst du Probleme mit anonymizern, die ständig den proxy >> wechseln. >> > zum eigentlichen Thema wurde schon genug gesagt. Von dem IP-Check kann > ich aber nur abraten da Du dann schnell ein Problem mit allen (?) > AOL-Usern hast. Ich bin mir nicht sicher ob es noch so ist aber ne Zeit > lang hat die IP sich bei so (fast ?) jedem Request geändert. Oder wie Du > schon sagst die Nutzer von Anonymizer und ähnlichem werde auch Probleme > haben. Eine höhere Sicherheit ist zwar vorhanden aber ich empfand die > Nachteile als sehr störend. > Stattdessen habe ich eine Mischung aus dem USER_AGENT und noch weitere > HTTP_* Variablen genommen. Ist zwar nicht gerade unwahrscheinlich dass 2 > User exakt die gleichen Werte haben aber immernoch sicherer als ohne. > > Grüße aus Berlin > Sven Yannik
php::bar PHP Wiki - Listenarchive