phpbar.de logo

Mailinglisten-Archive

[php] 1/2 OT Session und Google Cache

[php] 1/2 OT Session und Google Cache

Yannik Hampe yannik at cipher-code.de
Mon Dez 4 22:40:53 CET 2006



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