phpbar.de logo

Mailinglisten-Archive

[php] session handling

[php] session handling

Guido Haeger GH-lists_(at)_ecora.de
Fri, 14 Jul 2000 12:30:15 +0200


Daniel Nemetz schrieb

> ist passwort und username richtig, so wird seine ip geloggt.
> wenn der user nun auf eine neue site kommt, so wird der
> username mit übergeben, und so anhand des usernames
> geprüft ob noch die selbe ip zugreift wie die welche
> eingeloggt wurde. und es wird ein string ausgelesen in welchem
> jeder buchstabe die berechtigung gibt eine bestimmte seite
> aufzurufen. (zB. c für die site user ändern; oder a für die site
> user hinzufügen) nun wird eben seitenspezifisch geprüft ob
> der user den buchstabe der für den seitenaufruf notwendig ist
> besitzt oder nicht.
>
> wenn ip-check und berechtigungscheck abgeschlossen sind so
> darf der user auf die site sonst nicht.
>
> nun meine fragen: habe ich etwas übersehen,

Ja, Dein Session-Handling ist unbrauchbar.

1. Bei Leuten, die einen Dial-Up-Internetzugang nutzen, kann während
einer Online-Session die IP wechseln. D.h ein eigentlich berechtiger und
korrekt angemeldeter User verliert seine Berechtigung, weil der Provider
ihm eine andere IP zugewiesen hat. Auch T-Online scheint das zu
praktizieren, weshalb z.B. das Shopsystem eines größeren amerikanischen
Anbieters versagt, wenn man Cookies deaktiviert.

2. Zwei User Deines System sitzen hinter einer Firewall oder einem Proxy
und haben die selbe IP. Wenn Session-Id gleich Username ist, wird die
Session-Id leicht zu raten sein. Man kann also recht leicht und
unberechtigt die Session des anderen übernehmen.

3. Wenn ich Dein Berechtigungssystem richtig verstanden habe, dann
brauchst Du einen Buchstaben pro Seite für die Definition der Rechte.
Dies wird bei großen Projekten unübersichtlich bis unpraktikabel. Teile
lieber Deine User in Gruppen (z.B. User, Editor, Administrator) und lege
dann auf jeder Seite fest, von welchen Usern sie benutzt werden darf.

Guido Haeger



php::bar PHP Wiki   -   Listenarchive