Was darf man alles in Session Variablen packen und wie viel?
Hallöchen
Jetzt komme ich bestimmt mit einer richtig blöden Frage daher, aber kann ich in eine Session Variablen alles rein packen was ich will?
z.B.:
LG
Petra
Jetzt komme ich bestimmt mit einer richtig blöden Frage daher, aber kann ich in eine Session Variablen alles rein packen was ich will?
z.B.:
<?php
$_SESSION["inhalt"] = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//DE">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title></title>
</head>
<body>
<?php
echo "Hello World";
?>
</body>
</html>
';
?>
LG
Petra
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 160116
Url: https://administrator.de/forum/was-darf-man-alles-in-session-variablen-packen-und-wie-viel-160116.html
Ausgedruckt am: 26.12.2024 um 00:12 Uhr
12 Kommentare
Neuester Kommentar
Moin,
soweit ist weiß gibt es keine Größenbeschränkungen für Sessionvariablen. Außer den normalen Memory-Limit.
Hast Du es mal ausprobiert? Also ob die Sonderzeichen alle funktionieren? Zeilenumbrüche?
Ich würde es aus Sicherheitsgrüßen nicht empfehlen, da darüber Jemand in Deine Seite fremden Inhalt "einfügen" kann.
Stefan
Edit: Ich man mal aus dem "nicht empfehlen" ein "dringend abraten".
soweit ist weiß gibt es keine Größenbeschränkungen für Sessionvariablen. Außer den normalen Memory-Limit.
Hast Du es mal ausprobiert? Also ob die Sonderzeichen alle funktionieren? Zeilenumbrüche?
Ich würde es aus Sicherheitsgrüßen nicht empfehlen, da darüber Jemand in Deine Seite fremden Inhalt "einfügen" kann.
Stefan
Edit: Ich man mal aus dem "nicht empfehlen" ein "dringend abraten".
Moin.
oder ein "sehr gefährlich".
Das sind gerade solche Lücken nach denen Hacker suchen. Die könnten dann darüber jeglichen Code einschleußen.
Ich bin mir ziemlicher sicher, dass es geht. Aber ich kann dir so wie Stefan nur davon abraten.
Grüße
Bankaifan
Edit: Ich man mal aus dem "nicht empfehlen" ein "dringend abraten".
oder ein "sehr gefährlich".
Das sind gerade solche Lücken nach denen Hacker suchen. Die könnten dann darüber jeglichen Code einschleußen.
Ich bin mir ziemlicher sicher, dass es geht. Aber ich kann dir so wie Stefan nur davon abraten.
Grüße
Bankaifan
Nun, eine Session bzw. die Daten der Session werden auf dem Server gespeichert, nicht wie bei Cookies. Daher sollte das relativ sicher sein.
Wenn ein hacker natürlich dann Code einschleusen kann wrde ich mir über andere Sachen gedanken machen als ob jemand versucht Session zu manipulieren...
Die Frage ist warum möchtest du soviel Code in einer Session speichern? Was hast du vor? Vielleicht habe wir ja eine andere "schönere" Lösung.
Wenn ein hacker natürlich dann Code einschleusen kann wrde ich mir über andere Sachen gedanken machen als ob jemand versucht Session zu manipulieren...
Die Frage ist warum möchtest du soviel Code in einer Session speichern? Was hast du vor? Vielleicht habe wir ja eine andere "schönere" Lösung.
Moin,
also eine Sicherheitslücke sehe ich, im Gegensatz zu Stefan und Bankaifan nicht. Der Inhalt von $_SESSION wird auf dem Server (entweder in /tmp oder in einer DB) gespeichert. Der Client bekommt lediglich ein Cookie mit einer eindeutigen Sessionlennung. Der Inhalt von $_SESSION wird also nie zum Client übertragen.
Ob es jedoch sinnvoll ist ein kompletten Sourcecode einer Seite incl. PHP Tags usw in $_SESSION zu speichern kommentiere ich jetzt allerdings nicht
lg,
Slainte
/EDIT: Mist zu langsam ^^
also eine Sicherheitslücke sehe ich, im Gegensatz zu Stefan und Bankaifan nicht. Der Inhalt von $_SESSION wird auf dem Server (entweder in /tmp oder in einer DB) gespeichert. Der Client bekommt lediglich ein Cookie mit einer eindeutigen Sessionlennung. Der Inhalt von $_SESSION wird also nie zum Client übertragen.
Ob es jedoch sinnvoll ist ein kompletten Sourcecode einer Seite incl. PHP Tags usw in $_SESSION zu speichern kommentiere ich jetzt allerdings nicht
lg,
Slainte
/EDIT: Mist zu langsam ^^
und wer verwendet als Session Variablen mehr als nur IDs
PHPs Session-Mechanismus basiert darauf, dass der User einen Key bekommt, der einer Datei auf der Festplatte entspricht, die serialisierte PHP-Daten enthält.
Du kannst also soviel rein packen wie du a) auf die Festplatte und b) in PHPs RAM bekommst
und was du an Inhalten reinpackst hängt davon ab, wer auf dem Server noch die Session-Dateien lesen kann.
Ist also was die Standard-Implementation von SESSSION angeht quatsch, der Browser kann nämlich niemals die eigentlichen Inhalte sehen.
Auch das ist erstmal unerheblich.
Dazu müsste man zuerst
Wenn er unkonditional ist überschreibt der PHP-Code natürlich irgendwelche Übergaben.
Auf großen Seiten mit mehreren Servern (z.B. flickr) ist es durchaus üblich die Sessions auf dem Client abzuladen, damit die User zwischen den Servern wechseln können, das sieht dann so aus:
Nicht mehr als im Cookie.
Beides wird per HTTP übertragen, beides kann von einem Proxy-Admin problemlos abgefangen werden.
Das einzige theoretische Risiko ist, dass ein User so eine URL mit Session-ID kopiert und wem anders schickt.
Da PHP aber die Sessions standardmäßig an UA-String und IP bindet ist das auch nur in speziellen Situationen ein Risiko.
Hässlich ist es immer.
Du kannst also soviel rein packen wie du a) auf die Festplatte und b) in PHPs RAM bekommst
und was du an Inhalten reinpackst hängt davon ab, wer auf dem Server noch die Session-Dateien lesen kann.
Edit: Ich man mal aus dem "nicht empfehlen" ein "dringend abraten".
Ist also was die Standard-Implementation von SESSSION angeht quatsch, der Browser kann nämlich niemals die eigentlichen Inhalte sehen.
Also z.B. www.bank-schnuedelsheim.de?Content="Böser Inhalt".
Auch das ist erstmal unerheblich.
Dazu müsste man zuerst
register_globals
benutzen, was heute kaum noch irgendwo der Fall ist und dann müsste der Beispiel-Code oben konditional sein.Wenn er unkonditional ist überschreibt der PHP-Code natürlich irgendwelche Übergaben.
und wer verwendet als Session Variablen mehr als nur IDs
Auf großen Seiten mit mehreren Servern (z.B. flickr) ist es durchaus üblich die Sessions auf dem Client abzuladen, damit die User zwischen den Servern wechseln können, das sieht dann so aus:
cookie = aes($key,$daten).hash($hashkey.$daten)
EDIT: Man sollte aber niemals versuchen die Session ID an die URL anzuhängen, dies wäre ein deutliches Sicherheitsrisiko!
Nicht mehr als im Cookie.
Beides wird per HTTP übertragen, beides kann von einem Proxy-Admin problemlos abgefangen werden.
Das einzige theoretische Risiko ist, dass ein User so eine URL mit Session-ID kopiert und wem anders schickt.
Da PHP aber die Sessions standardmäßig an UA-String und IP bindet ist das auch nur in speziellen Situationen ein Risiko.
Hässlich ist es immer.