PHP $_SESSION
johnny_jones
- php
Hallo,
eine kurze Frage habe ich:
Wie schwierig ist es für einen potentiellen Angreifer Session-Variablen auszulesen?
Dass die Session-ID beim Client bestenfalls in einem Cookie abgespeichert wird, ist mir klar.
Aber was ist mit den zu einer Session-ID gehörigen Variablen? Werden die vom Server verwaltet oder liegen die auch auf dem Client?
Darf man sensible Daten, wie die Verbindung zu einer Datenbank in Session-Variablen speichern?
Ist es sicher, ein Datenbankobjekt in einer Sessionvariable zu speichern?
Hi,
Wie schwierig ist es für einen potentiellen Angreifer Session-Variablen auszulesen?
extrem leicht - vorausgesetzt Du stellst die Werte zur Verfügung. Andernfalls ist es tendenziell unmöglich.
Aber was ist mit den zu einer Session-ID gehörigen Variablen? Werden die vom Server verwaltet oder liegen die auch auf dem Client?
Nur auf dem Server.
Darf man sensible Daten, wie die Verbindung zu einer Datenbank in Session-Variablen speichern?
Ich bin nicht sicher, ob ich überhaupt eine Datenbankverbindung speichern würde, außer natürlich in einem Datenbankverbindungsspeicherungssystem. Das hat dann aber mit (diesen) Sessions nichts zu tun.
Cheatah
»» Wie schwierig ist es für einen potentiellen Angreifer Session-Variablen auszulesen?
extrem leicht - vorausgesetzt Du stellst die Werte zur Verfügung. Andernfalls ist es tendenziell unmöglich.
meinst Du mit zur Verfügung stellen auch das blosse zueisen und auf der anderen Seite wieder auslesen?
Lieber johnny_jones,
das blosse zueisen
also mal ehrlich mein lieber johnny_jones, mit diesem dreckskalten Wintergehabe muss nun aber endgültig Schluss sein. Ich will doch an Ostern meine Eier nicht im Schnee finden müssen!
Liebe Grüße,
Felix Riesterer.
[latex]Mae govannen![/latex]
Ich will doch an Ostern meine Eier nicht im Schnee finden müssen!
Dann setz' dich halt nicht rein! ;)
Cü,
Kai
Hi,
meinst Du mit zur Verfügung stellen auch das blosse zueisen und auf der anderen Seite wieder auslesen?
ich meine das öffentliche Ausgeben.
Cheatah
Lieber Cheatah,
eine Datenbankverbindung speichern [...] in einem Datenbankverbindungsspeicherungssystem
uff, keine Ahnung wovon Du da schreibst. Aber das Elendswort klingt fast wie in diesem Spruch:
"Wer anderen eine Grube gräbt, der braucht ein Grubengrabgerät."
Liebe Grüße,
Felix Riesterer.
Hi!
» eine Datenbankverbindung speichern [...] in einem Datenbankverbindungsspeicherungssystem
uff, keine Ahnung wovon Du da schreibst. Aber das Elendswort klingt fast wie in diesem Spruch:
"Wer anderen eine Grube gräbt, der braucht ein Grubengrabgerät."
Willst Du baggern?
off:PP
Hello,
bei schlecht eingerichteten Multi-Hosts lassen sich die Sessions ggf. durch einen ebenfalls auf dem Host befindlichen Account entführen, wenn die Session-ID bekannt ist.
Dann kann dieser andere Account die Sessiondaten auch auslesen.
Sensiblere Dinge, so wie z.B. einen Shop, sollte man daher eher auf einem eigenen Host einrichten, bzw. einem, der eben nur einem selber zur Verfügung steht. Da reicht aber dann oft auch schon ein V-Server zur Abgrenzung.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
echo $begrüßung;
Wie schwierig ist es für einen potentiellen Angreifer Session-Variablen auszulesen?
Ohne weitere Sicherheitslücken ist es unmöglich.
Aber was ist mit den zu einer Session-ID gehörigen Variablen? Werden die vom Server verwaltet oder liegen die auch auf dem Client?
Wenn die Daten auf dem Client lägen, bräuchte man keine Session-ID, denn dann hätte man alles Relevante in jedem Client-Request, müsste aber auch alles Relevante immer wieder zum Client schicken. Und außerdem müsste man etwas gegen eine Manipulation unternehmen.
Die Session-Daten liegen in einer der ID zugeordneten Datei auf dem Server. (Normalerweise. Es gibt auch andere serverseitige Speichermöglichkeiten.) Bei Massenhostern ist es zudem möglich, dass alle Sessiondaten im selben globalen Verzeichnis abgelegt werden. Und da alle Mithostlinge Lese- und Schreibzugriff auf das Verzeichnis haben, ...
Darf man sensible Daten, wie die Verbindung zu einer Datenbank in Session-Variablen speichern?
Wenn du damit die Ressourcenkennung meinst, die du nach einem Connect bekommst, so ist das sinnlos, denn die Verbindung wird am Script-Ende automatisch geschlossen. Die Anmeldedaten hast du ja sowieso in irgendeinem Script oder einer Konfigurationsdatei stehen, die müssen nicht nochmal in eine Session.
Ist es sicher, ein Datenbankobjekt in einer Sessionvariable zu speichern?
Es ist so sicher oder unsicher wie für alle anderen Daten.
Es nützt nichts, eine Frage nach "sicher" zu stellen. Zum einen musst du dabei definieren, was du unter "sicher" verstehst, und zum anderen musst du das Prinzip hinter einer Lösung verstehen, um entscheiden zu können, ob sie in deinem konkreten Fall "sicher" ist oder nicht.
echo "$verabschiedung $name";