Hello MfG,
deshalb hab ich als auch ein $_SESSION['login'] und $_SESSION['user_id']
[...]
... und das ist unsicher.
Da sowieso in der DB nachgeschaut werden muss, ob der User Rechte hat, kann man auch gleich dort nachschauen, ob er angelmeldet ist.
Anderenfalls könnte ich als Mitnutzer einfach quer über den Server mal eben Deine Sessiondateien scannen und meine derart verändern, dass da ein "login==true" drinsteht. Und eine passende Usernummer mit genügend hohen Rechten finde ich dann auch noch.
Dass das bei vielen Providern immer noch geht, habe ich in einem anderen Thread schon erwähnt.
Also sollte man die Zugangsrechte nur in der Datenbank halten und auch nicht in der Session abspeichern, sondern immer nur in einer (flüchtigen) Scriptvariable. Die ist einfach besser geschützt.
Sessiondateien sind oft für alle User eines Shared Hosts erreichbar, da PHP für alle User mit derselben Userkennung arbeitet. Das Problem entfällt, wenn PHP und _alle_ VirtHosts, für die es arbeiten soll, sauber eingerichtet sind oder wenn man gleich die CGI-Variante benutzt. Die ist aber wesentlich langsamer, da immer erst ein komplettes "PHP-Kernel" geladen werden muss, während in der Modul-Variante immer nur eine Instanz der bereits im Speicher befindlichen erzeugt wird.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau