Sessions

Hallo,

wenn ich mit dem normalen PHP Sessionmanagement eine Seite absichere, indem ich nach erfolgreichem Login eine Sessionvariable setze, die dann auf jeder Seite abgefragt wird, habe ich trotzdem ein Problem. Denn wenn jemand von derselben IP auf die Seite geht (z.B in einem Netzwerk) wird die aktuelle Session übernommen, da PHP das anscheinend nicht unterscheiden kann. Auch wenn ich ein zweites Browserfenster auf dem Rechner, auf dem ich eingeloggt bin, öffne, wird die Session übernommen. Ich dachte es wird eine ID generiert und der Browser schickt die ID bei jedem GET oder POST mit zum Server, so dass der zwischen den Sessions unterscheiden kann.

Wie kann ich soetwas vehindern?

Danke

Daniel

Hallo Daniel,

wenn ich mit dem normalen PHP Sessionmanagement eine Seite
absichere, indem ich nach erfolgreichem Login eine
Sessionvariable setze, die dann auf jeder Seite abgefragt
wird, habe ich trotzdem ein Problem. Denn wenn jemand von
derselben IP auf die Seite geht (z.B in einem Netzwerk) wird
die aktuelle Session übernommen, da PHP das anscheinend nicht
unterscheiden kann.

Keine Angst, die IP-Adresse allein reicht nicht aus. Beim
Start einer Session generiert php eine eindeutige ID, die
an den Browser übermittelt wird. Über diese ID wird
serverseitig die Zuordung zur Session vorgenommen; die
IP-Adresse hat damit nichts zu tun.

Es können also beliebig viele Benutzer den selben Proxy-
Server oder NAT-Router verwenden und trotzdem eindeutig
unterschieden werden.

Auch wenn ich ein zweites Browserfenster
auf dem Rechner, auf dem ich eingeloggt bin, öffne, wird die
Session übernommen. Ich dachte es wird eine ID generiert und
der Browser schickt die ID bei jedem GET oder POST mit zum
Server, so dass der zwischen den Sessions unterscheiden kann.

Das zweite Browserfenster stammt ja von dem gleichen Browser
und sendet daher auch die gleichen Cookies (also auch das Cookie
mit der ID) an den Server.

Wenn Du zwei verschiedene Browser (z.B. IE und Opera) benützt,
kannst Du feststellen, dass beide unterschiedliche IDs = Sessions
zugeordnet bekommen.

Weitere Infos zum Thema Sessions:
http://de2.php.net/manual/de/ref.session.php

Gruss
Thomas