Auch Moin!
das Prinzip von Sessions ist mir bekannt. Das Prinzip eines Logins auch. Allerdings möchte ich Benutzername und Passwort in einer Datenbank ablegen und dafür ein Login entwickeln.
Nun könnte ich einfach mit Formularen und Variablen arbeiten... allerdings wäre das Ganze dann einfach zu knacken, indem man die Variablen, welche übergeben werden, manipuliert.
Hat also jemand mal ein kleines simples Beispiel für ein solches 'sicheres' Login? Wo man nicht einfach irgendwas manipulieren kann?
Das Problem ist: Es gibt bei HTTP absolut keine Möglichkeit, einen "Login" im klassischen Sinne zu basteln. Es werden immer Krücken genommen.
Krücke Nr. 1 (auf jeden Fall zu bevorzugen): HTTP-Authentifizierung, auch bekannt als .htaccess-Methode (obwohl man das auch mit PHP hinkriegt).
Hierbei werden bei jedem Request, den der Browser an den Server schickt, immer Username und Paßwort mitgeschickt, also kann bei jeder Anfrage geprüft werden, ob diese Angaben gültig sind. Im Zusammenspiel mit HTTPS ist diese Methode ziemlich sicher, nur mit HTTP wäre eigentlich AuthType Digest zu empfehlen, weil dabei zumindest die Username/Paßwortangabe verschlüsselt wird, und am schlimmsten, weil unverschlüsselt ist Basic. Netscape 4 kann nur Basic, was Digest-Lösungen immer noch ausschließt
Krücke Nr. 2: Sessions.
Dabei wird einmal per Formular Username und Paßwort an den Server gesendet. Als Gegenleistung wird dem Browser quasi ein String mitgeteilt (die Session-ID), der bei weiteren Anfragen immer wieder mitgesendet werden muß - wahlweise als Cookie, als URL-Parameter oder als verstecktes Feld in Formularen (mach PHP alles automatisch). Solange der Benutzer nicht die Logout-Funktion aktiviert hat und dieser String als ungültig beim Server bekannt gemacht wird, hat derjenige Zugriff, der den String kennt, auch wenn er Username und Paßwort nicht kennt.
Sicher ist dabei eigentlich nur Methode 1, zumindest ist sie sicherer als Methode 2. Ich würde es also einfach damit probieren.
http://www.php.net/manual/de/features.http-auth.php lesen, wenn .htaccess nicht direkt etwas für dich ist.
- Sven Rautenberg