Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Was darf man alles in Session Variablen packen und wie viel?

Frage Entwicklung PHP

Mitglied: ppmk22

ppmk22 (Level 1) - Jetzt verbinden

04.02.2011 um 09:59 Uhr, 5252 Aufrufe, 12 Kommentare

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.:
01.
<?php 
02.
$_SESSION["inhalt"] = ' 
03.
                        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//DE"
04.
                        <html> 
05.
                            <head> 
06.
                                <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"
07.
                                <title></title> 
08.
                            </head> 
09.
                            <body> 
10.
                                <?php 
11.
                                    echo "Hello World"
12.
                                ?> 
13.
                            </body> 
14.
                        </html> 
15.
                      '; 
16.
?>
LG
Petra
Mitglied: StefanKittel
04.02.2011 um 10:04 Uhr
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".
Bitte warten ..
Mitglied: bankaifan
04.02.2011 um 10:08 Uhr
Moin.

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
Bitte warten ..
Mitglied: ppmk22
04.02.2011 um 10:13 Uhr
Oh danke für die schnelle Antwort.
Schade das wäre auch zu einfach gewesen. Probiert hatte ich es schon, ging auch soweit, wollte nur wissen ob was dagegen spricht.
Dann werde ich mir was anderes überlegen, danke nochmal.

LG
P
Bitte warten ..
Mitglied: EvilMoe
04.02.2011 um 11:27 Uhr
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.
Bitte warten ..
Mitglied: SlainteMhath
04.02.2011 um 11:29 Uhr
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 ^^
Bitte warten ..
Mitglied: StefanKittel
04.02.2011 um 11:36 Uhr
Das Problem sehe ich wenn Jemand anderes die Seite aufruft.

Also z.B. www.bank-schnuedelsheim.de?Content="Böser Inhalt".

Stefan
Bitte warten ..
Mitglied: EvilMoe
04.02.2011 um 11:42 Uhr
Wo ist da das Problem, andere Seiten haben auf die Session keinen Zugriff.

EDIT: Man sollte aber niemals versuchen die Session ID an die URL anzuhängen, dies wäre ein deutliches Sicherheitsrisiko!
Bitte warten ..
Mitglied: SlainteMhath
04.02.2011 um 11:47 Uhr
Also z.B. www.bank-schnuedelsheim.de?Content="Böser Inhalt".
Ja, das hat aber nix mit $_SESSION zu tun, sondern eher mit register_globals=on|off bzw. schlechter/schlampiger Programmierung
Bitte warten ..
Mitglied: StefanKittel
04.02.2011 um 11:51 Uhr
Zitat von SlainteMhath:
schlechter/schlampiger Programmierung
und wer verwendet als Session Variablen mehr als nur IDs
Bitte warten ..
Mitglied: dog
04.02.2011 um 11:53 Uhr
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.

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.
Bitte warten ..
Mitglied: ppmk22
04.02.2011 um 11:54 Uhr
Ich rufe z.B. die index.php auf, dort wird dann in Link betätigt der per get oder post eine abfrage.php aufruft. Dort wird dann eine sql Abfrage gemacht. Das Ergebnis wollte ich dann in eine Session Variablen packen und dann diesen hier header("location:../index.php"); Da soll der Inhalt der Session wieder ausgegeben werden. Nun kann es aber sein das mit dem Ergebnis noch etwas mehr mit muss wie z.B.: <div> <li> usw. mit soll. So war es gedacht. Was meint Ihr?
Bitte warten ..
Mitglied: ppmk22
04.02.2011 um 12:16 Uhr
Ich glaube meine Antwort ist jetzt untergegangen, aber wenn ich das jetzt richtig verstanden habe, spricht da nichts gegen.

Ich rufe z.B. die index.php auf, dort wird dann in Link betätigt der per get oder post eine abfrage.php aufruft. Dort wird dann eine sql Abfrage gemacht. Das Ergebnis wollte ich dann in eine Session Variablen packen und dann diesen hier header("location:../index.php"); Da soll der Inhalt der Session wieder ausgegeben werden. Nun kann es aber sein das mit dem Ergebnis noch etwas mehr mit muss wie z.B.: <div> <li> usw. mit soll. So war es gedacht.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Sicherheit
Das FBI darf jetzt weltweit hacken (1)

Link von transocean zum Thema Sicherheit ...

Batch & Shell
gelöst Variablen Zusammenbauen 2.0 ( Batch ) (6)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst FOR Loop Variablen ( Batch ) (2)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...