Mailinglisten-Archive |
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