Hallo,
ich geb auch mal meinen Senf dazu :
Mmmmh weil die doch zum Beispiel von anderen Rechnern ausgelesen werden können.
mfg
Das stimmt einfach nicht.
Cookies können nur von dem Rechner ausgelesen werden, der sie auch gesendet hat, bzw. sendet dein Browser die Cookies ZU diesem Rechner, wenn passende existieren, von "auslesen" kann man also eigentlich garnicht sprechen!
Irgendwie haben die Medien es geschafft zu verbreiten, dass Cookies gefährlich wären, dem ist aber nicht so! Ein Cookie ist einfach eine Schlüssel>Wert Kombination, die auf deinem Rechner gespeichert wird.
Zum Eingeloggt-bleiben-Problem:
Du könntest z.B. in der Datenbank zur User-Tabelle ein Feld "Loginhash" o.Ä. hinzufügen, in das du einen md5-codierten String einträgst, den du am Besten aus einer zufällig generierten Zeichenkette + Loginname o.Ä. generierst (Ist ne Einweg-Verschlüsselung, lässt sich also nicht zurückrechnen). Wenn dann ein User auf deine Seite geht, prüfen, ob das Cookie gesetzt ist (isset($_COOKIE['cookiename']), verhält sich im Umgang genau wie $_SESSION, $_GET oder $_POST). Wenn es gesetzt ist, mit der Datenbank abgleichen, ob der String aus dem Cookie mit dem aus der Datenbank identisch ist und wenn ja, kannst du dann entsprechend deine Session-Variablen setzen und sozusagen automatisch einloggen. Missbrauch wäre so nur möglich, wenn jemand seine Cookies manipuliert und genau diesen md5-Hash einträgt. Also vom Risikofaktor wie wenn man eine Session-ID weitergibt (Stichwort "Session-Injection"), nur dass Cookies zu manipulieren für Laien eigentlich noch komplizierter ist. Das ganze kannst du dann noch erweitern, z.B. ein weiteres Cookie mit dem Wert der ID des Users aus der Datenbank o.Ä.,
aber im Endeffekt befinden sich dann keinerlei Daten in den Cookies, mit denen man als potentieller Angreifer was anfangen könnte. (Benutzername und Passwort(!!) haben da drin nix verloren, in unverschlüsselter Form gleich 3mal nicht!)
MfG