Rouven: Understanding sessions....

Beitrag lesen

N'Abend,

also ob ich jetzt gerade das ganze Thema kurz erschlagen kriege weiß ich nicht, aber ich fang einfach mal an:

Wird dadurch eine Datei auf dem Server erzeugt? Und wo kann ich diese Datei im directory finden? (root des webservers? oder windows verzeichnis?)

Tja, ich weiß nicht genau, wie das beim IIS ist, das müsste ich mal nachsehen. Der Apache legt, je nach Einstellung (glaube ich), eine Datei ab, bei mir tut er es jedenfalls. Die kann man sich dann auch anschauen, das Verzeichnis muss man konfigurieren (zumindest unter Windows) und damit findet man auch die Dateien. Die heißen dann so etwas wie <sessionid>.txt und können mit einem beliebigen Texteditor geöffnet werden. Darum ist es auch maßlos gefährlich, wenn die Sessions in einem Bereich des Servers liegt, auf den man von außen Zugriff nehmen kann: Man könnte die Dateien lesen (Passwörter, Nutzernamen), schreiben (ich bin der und der und außerdem admin...) und löschen...

In der Regel wird in der Session eher nicht das selbe stehen wie im Session Cookie - Sogar i.d.R. ist noch untertrieben. Das Session-Cookie ist ein Instrument, dass dein Client gegenüber dem Server verwendet um ihn daran zu erinnern, dass die beiden schon mal miteinander geredet haben. Der Server weiß ja "ah, da ist ein Client, machen wir mal eine Session auf". Aber woher soll er schon beim nächsten Seitenaufruf wissen, dass es noch der selbe Nutzer ist. Also geht der Client hin, schickt das Cookie mit, da ist noch die Session-ID drin und der Server schaut nach, ob er die Session noch hat. Alternativ kann das ganze auch über die URL geschehen, in diesem Fall fügt z.B. PHP automatisch in Formulare und URLs diese Session-ID mit eine - Der Effekt ist der selbe, es funktioniert halt auch ohne aktivierte Cookies.

Ob du auch beim IIS in die Session einsehen kannst, müsstest du mal anderweitig herausfinden...
http://take23.org/docs/guide/modules.xml/1
Dieser Link verrät mir allerdings, dass der IIS grundsätzlich seine Sessions wohl nur im RAM hält, der Apache ist da eher flexibel...

Rouven