Sven Rautenberg: Cookies oder Sessions?

Beitrag lesen

Moin!

Sessions sind allgemein besser als Cookies, weil der Benutzer sie
nicht abschalten kann.

[ ] Du kennst den Unterschied zwischen Cookies und Sessions.

Sessions sind  serverseitige "Variablen", für jeden Besucher eine
einzige (das heißt, du kannst alle Aktionen ... eines Besuchers kontrollieren)...

Würde ich etwas anders formulieren:

"Session" ist ganz allgemein die Bezeichnung für eine Anwendersitzung, also dem Folgen der einzelnen Useraktivität vom ersten Betreten der Site bis zu deren Verlassen. Das Problem ist normalerweise, daß HTTP kein sessionbehaftetes Protokoll ist, es kennt also keine "Seite, die vorher abgerufen wurde".

PHP bietet eine Funktionalität an, um einen Besucher über mehrere Seiten zu verfolgen. In der Standardkonfiguration bedient sich PHP dabei dem besten, was sessionverfolgungsmäßig verfügbar ist: Cookies! Ein Cookie, einmal gesetzt, erlaubt die uneingeschränkte Verfolgung des Besuchs. Und damit verbunden erlaubt das PHP-System, dieser Benutzersitzung Variablen zuzuordnen, die bei jedem PHP-Skript erneut zur Verfügung stehen - somit werden praktisch Benutzer-Informationen auf dem Server mitgeschleppt.

Wenn der Benutzer keine Cookies erlaubt, dann wird als Ausweichlösung die Session-ID als Parameter in die Links und als verstecktes Feld in Formulare gepackt.

Dies alles (Cookies setzen, Links anreichern, Formular ergänzen) geschieht bei PHP ganz automatisch auf der ersten Seite. Sobald Cookies gesetzt sind (auf der zweiten aufgerufenen Seite merkt PHP das), werden die Links nicht mehr verändert.

Verzichte also lieber auf Cookies und benutze Sessions.

Sessions benutzen nach Möglichkeit immer Cookies. Man muß nur wissen, welche Probleme möglicherweise auftreten können, wenn keine Cookies benutzt werden, denn die Sessionerkennung wird dadurch unsicherer bzw. manipulierbarer. Da die ID in der URL auftaucht, könnten auch ganz anderer Nutzer diese ID benutzen, weil z.B. der erste User die URL kopiert und in ein Forum gepostet hat. Bei Cookies geht das nicht.

Viele große Websites arbeiten mit Sessions, z.B. Web.de
(web.de?sid=sessionid)..

...und es ist in der Regel nicht einzusehen, warum das der Fall ist.

- Sven Rautenberg