phpbar.de logo

Mailinglisten-Archive

[php] Session Handling

[php] Session Handling

Niels J�ckel niels.jaeckel at silice.de
Sam Okt 21 15:42:23 CEST 2006


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