Cookies

Gesperrt
Benutzeravatar
alex0469
Überflieger
Beiträge: 2834
Registriert: 6. Sep 2006, 14:07
Wohnort: Fürth / Nürnberg
Kontaktdaten:

Cookies

Beitrag von alex0469 »

Wir verwenden nur Funktionscookies die zum Betrieb unbedingt notwenid sind. Es werden beim Auftruf folgende Cookies gesetzt:

_u Die User ID, bei Gästen normalerweise 1
_sid Die Session ID
_k Session Key

Warum tun wir das -- dazu muß ich ein wenig ausholen:

HTTP(S) ist ein zustandsloses Protokoll, d.h. jeder Seitenaufruf steht für sich selbst und weiß nichts von vorherigen Seitenaufrufen oder Daten die bei vorherigen Seitenaufrufen gesendet wurden. Das ist der große Unterschied zu Programmen die lokal auf deinem Rechner laufen, diese Programme laufen dauerhaft und kennen theoretisch alle eingegebenen Daten über die gesamte Laufzeit. Eine Webseite ist wie ein Programm das bei jedem Seitenaufruf neu gestartet wird. Du kommst also auf das Forum und rufst mit deinem ersten Seitenaufruf die Forenübersicht auf, das Forum kennt dich nicht und zeigt dir die Seite in "Gastansicht" an. Jetzt klickst du auf "anmelden" und bekommst die Anmelde Seite angezeigt, das Forum kennt dich immer noch nicht und weiß auch nicht das du davor schon die Forenübersicht aufgerufen hattest. Du gibst deine Anmeldedaten ein und sendest sie ab. Jetzt werden die Anmeldedaten in einem POST Request an das Forum übermittelt und das Forum kann dich anmelden, die nächste Seite kann also speziell für deinen Benutzer ausgegeben werden da du durch deine Anmeldedaten identifiziert werden kannst. Nachdem du dich angemeldet hast klickst du auf einen Link und jetzt kommt das Problem. Durch den klick auf einen Link werden deine Anmeldedaten nicht nochmal übermittelt und da wir immer noch mit einem zustandslosen Protokoll arbeiten weiß das Forum nicht ob du dich vorher schon mal angemeldet hast oder nicht. Um das zu lösen gibt es mehrere Möglichkeiten, ich sortiere die mal von schlecht nach gut:

1. Man übergibt die Anmeldedaten einfach in der URL (example.com?user=tobi&pw=geheim), das hat allerdings den Nachteil das in jedem Link die Zugangsdaten stehen, wenn man einen Link kopiert und weitergibt gibt man auch seine Zugangsdaten weiter. Wenn man auf einen Externen Link klickt werden die Zugangsdaten im Referrer Header des Browsers an die andere Webseite übergeben.

2. Man erstellt bei erfolgreicher Anmeldung eine Session und hängt die Session-ID an die URL an (example.com?sid=edb0e8665db4e9042fe0176a89aade16). Jetzt stehen die Zugangsdaten nicht mehr in der URL, wenn man den Link aber weitergibt ist jeder der ihn aufruft trotzdem angemeldet da er eine gültige Session ID übergibt und der Benutzer nur an der Session identifiziert werden kann.

DESWEGEN . Man macht alles wie in 3. aber hängt die Session ID nicht an die URL an sondern speichert sie in einem Cookie. So bleibt die URL "sauber" und es gibt keine Probleme wenn man die URL weitergibt. Dein Browser sendet bei jedem Seitenaufruf das Cookie das beim anmelden gesetzt wurde mit und das Forum kann dich identifizieren.

Gruß Alex
[img]http://www.world-of-smilies.com/html/images/smilies/auto/burnrubber0.gif[/img]
Six in a row makes it go!
Gesperrt