wo werden sessions gespeicher?

sra

Erfahrenes Mitglied
Hallo

Ich habe da mal ne Frage, und zwar bin ich gerade ein bisschen mit Sessions am rummachen...

Mich würde jetzt intressieren, wie die auf dem Zielrechner gespeichert werden (die müssen ja irgendwo sein), oder werden die auf dem Server bereitgestellt?

Würde mich nähmlich mal intressieren, wie solche sessions aufgebaut sind und so ;)

gruss aus der Schweiz
 
Die session dateien landen je nachdem wie PHP konfigoriert is ganz wo anders..

bei windows ist es standartmäßg c:\php\sessiondata\ bei unix und linux is es glaub ich standartmäßig /tmp
das ist eine Datei die die session ID im namen benutzt.

Für informationen zum aufbau würd ich dir nahelegen dir den quellcode zum PHP modul session.so bzw. php_session.dll anzugucken, ist beim PHP source dabei.
 
Habe ich dich richtig vertsnden, dass Sessions mal grundsätzlich auf dem Server gespeichert sind, und ohne Adminrechte da gar nicht ranzukommen ist?

Oder gibt es eine Möglichkeit von "Aussen" auf meine eigene Session zuzugreifen? Schliesslich muss da ja eine Komunikation zwischen meinem Rechner und dieser Session sein.
 
Du kannst die Sessions nicht als Datei an sich auslesen, da sie ausserhalb der htdocs Ebene liegen und somit nicht direkt vom Internet anzusprechen sind (und das ist auch gut so).

Kommunikation mit deinen Sessions findet statt über das superglobale Array $_SESSION.
PHP:
$_SESSION['name'] = "wert"; // weist dem Element name den Wert wert zu.

echo $_SESSION['name']; // gibt wert aus

unset($_SESSION['name']); // entfernt das Element name aus der Session
Ganz wichtig ist noch auf jeder Seite auf der du mit den Sessions arbeiten möchtest (am besten in der ersten Zeile) ein session_start() zu setzen.
 
hm...

Vielen Dank erstmals.

Also ist es praktisch unmöglich eine Session anzuschauen, es sei denn man hat Adminzugriff auf den Server? :(

Schade... wollte mal sehen, wie die abgelegt werden und so.

Es geht darum, dass ich einen Vortrag über Sicherheit in meiner eigenen PHP Seite schreiben soll.

Da habe ich ledeglich in der Session eine Variable, in welcher ich den status des Users speichere. Wenn ich also an meine Session rankomme, dann kann ich doch einfach die Variable und somit meinen Status manipulieren.

Frage: Wenn man nicht an diese Session rankommt, warum gilt meine Methode dann nicht wirklich als sicher? Warum meinen alle ich solle mich mal mit .htaccess und so befassen?
 
Ich schätze, weil die Informationen, die du zum Login brauchst, Plaintext im Header übergeben werden. In der Hinsicht ist htaccess sicherlich mit das sicherste, aber prinzipiell kannst du sagen, dass man auf die Sessionvariablen nur dann zugreifen kann, wenn man

a) Ein Script auf dem Webspace laufen lässt, oder
b) Physikalischen oder Root-Zugriff auf den Server hat.

Installier dir doch mal lokal ein XAMPP (Apache MySQL PHP Perl) System (zu finden via Google nach XAMPP). Das braucht man nur entpacken und per batch-Datei zu starten. Da kannst du dir auch alles angucken und istzt ja in dem Sinne physikalisch am Server. Dort liegen die Sessions dann, soweit ich mich erinnern kann, im tmp Ordner des Server Verzeichnisses.
 
Zurück