phpbar.de logo

Mailinglisten-Archive

[php] Login-Sessions

[php] Login-Sessions

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Don Nov 24 08:17:34 CET 2005


Hi Andreas,

Am Donnerstag, 24. November 2005 07:53 schrieb Andreas Heigl:
> Robert Preis schrieb:
> > (2.)
> > ip des rechners, an dem der user grade sitzt speichern.
>
> Die IP des Client-Rechners zur Authentifizierung (im weistesten Sinne) zu
> verwenden halte ich persönlich für unklug.
>
> In Zeiten von oftmals dynamischen IP-Adressen kann es passieren, dass sich
> im Laufe einer Sitzung die IP-Adresse des Client ändert. Der Benutzer wird
> dann abgemeldet, ohne zu wissen warum und wieso und weshalb. Das kann sehr
> frustrierend sein für den ahnungslosen Anwender, der einfach nur
> feststellt, das er abgemeldet wurde.

das stimmt natürlich. Da hatte ich gestern Abend auch nicht dran gedacht. 
Allerdings kommt es auf die Umgebung an, für die die Webanwendung bestimmt 
ist. Wenn sichergestellt ist, daß eine IP nicht während der Session wechselt, 
dann ist die IP doch verwendbar. Ein Anwendungsfall wäre z.B. eine 
firmeninterne Verwendung, wo jeder Arbeitsplatzrechner eine feste IP hat und 
diese auch für den Server sichtbar wird.

Hier kommt aber wieder ein anderes Problem ins Spiel. Es gibt nicht nur 
dynamische IP-Adressen, die während einer Sitzung wechseln können, sondern 
auch Proxies mit einer IP-Adresse, hinter der sich viele Anwender 
"verstecken", also z.B. ein Firmennetzwerk. Nach draußen wird dann nur die 
eine IP sichtbar, über den tatsächlichen Anwender sagt sie aber dann 
überhaupt nichts aus.


> Eine vernünftige Alternative habe ich so spontan aber leider nicht auf
> Lager. :-(

Naja, man könnte es z.B. während der Sitzung mit dem HTTP_USER_AGENT 
versuchen. Der sollte ja nicht während der Sitzung wechseln. :-)

Aber eigentlich ist der Ansatz für Robert ein anderer. Wie schon sein Betreff 
sagt, geht es ja eigentlich um Sessions. D.h. ein Benutzer wird durch die 
Session-ID eindeutig identifizierbar. Natürlich kann eine Session geklaut 
werden. Dagegen kann man aber einige effiziente Maßnahmen ergreifen, z.B. daß 
eine Session nur mit Cookie möglich ist, daß der Session-Timeout sehr knapp 
gesetzt ist, daß eine Session nur verschlüsselt verwendet werden darf usw. 
Sobald also eine Anmeldung erfolgt und solange eine Session-ID verwendet 
wird, arbeitet man eben mit SSL. Ich denke, das ist doch schon mal recht 
sicher.

Allerdings sollte man dabei erwähnen, daß SSL ip-basiert ist, d.h. pro 
IP-Adresse kann man nur einen virtuellen Host anlegen, der auf den Port 443 
hört. Oder anders herum gesagt, ich kann auf eine IP-Adresse nicht mehrere 
Domains für HTTPS legen, die dann für verschiedene virtuelle Hosts gelten. 
Wenn man sowas braucht, braucht man mehrere IP-Adressen für den Rechner.


Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive