Mailinglisten-Archive |
Hallo Ralf, > 1a) Der Session Cookie ist nur für Dauer der Sitzung gültig. > > 1b) Der Session Cookie ist auch nach dem Schließen des Browsers > weiterhin gültig. das kommt ganz auf den Einsatzzweck an. Normalerweise reicht 1a) aus. Doch gelegentlich möchte man ja eine "remember my login"-Funktionalität einbauen (1b) > 2a) Wenn der Session Cookie nicht akzeptiert wird, wird die Session ID > an alle Links eurer Seite angehängt (IMHO großes > Sicherheitsproblem). > > 2b) Wenn der Session Cookie nicht akzeptiert wird, gibt es keine > Alternative. Zum Einloggen ist somit zwingend ein Cookie zu > akzeptieren Kommt wiederum drauf an. Da ich Sessions grundsätzlich nur dann einsetze, wenn sie gebraucht werden (siehe auch nächster Abschnitt) lasse ich keine SIDs an die URL ran. Da musst du halt mit dir vereinbaren, wie sicherheitskritisch die Anwendung ist. Bei meinem Online-Banking würde ich angehangene SessionIDs als schweren Fehler einstufen - wenn es sich nur um ein kleines Forum handelt mag das gehn. > 3a) Jeder Besucher der Seite bekommt immer einen Session Cookie > zugeteilt. > > 3b) Es werden nur Session Cookies verteilt, wenn sie wirklich notwendig > sind. Ich nenne es mal den Ansatz der Cookie-Sparsamkeit. Wie schon oben beschrieben Sessions nur dann, wenn auch nötig (Login-Bereich). Dann leuchtet dem Nutzer der Grund für das Cookie auch ein. > 2. Ist der Ansatz der Cookie-Sparsamkeit mit dem in PHP integrierten > Session Handling überhaupt realisierbar? Bei session_start() wird > ja immer eine Session erstellt und ohne session_start() kann nicht > auf $_SESSION zugegriffen werden. Eine einfache Lösung ist folgende: - Alle abgesicherten Skripte in einen Ordner (z.B. secure/ ) - Alle Skripte dieses Ordners includen die Session-Funktionalität (z.B. start_session.php ) - Auch das Login-Skript mit in den Ordner Und schon hast du nur dann Sessions, wenn sie gebraucht werden. Wenn du ein CMS einsetzt könnte man das ähnlich über den Pfad regeln oder muss jeder Seite (irgendwie) ein entsprechendes Attribut geben (braucht Session oder nicht) > 3. Gibt es Einschränkungen und Probleme bei der Verwendung vom in > PHP integrierten Session Handling, auf die man nicht unbedingt > sofort stößt. Ich hatte noch nie Probleme damit. Man muss nur aufpassen, dass man den Session-Pfad explizit setzt (sonst /tmp --> für alle lesbar) und am besten (sofern unterhalb vom DocRoot) ne .htaccess mit "deny from all" reinlegen Grüße, Niels
php::bar PHP Wiki - Listenarchive