Mailinglisten-Archive |
On 2008-11-09 12:08, Carlo wrote: > Hallo, > > durch Zufall schaue ich in den Ordner wo eine Software ihre > Sessionsdaten ablegt und entdecke dort diese Dateien: > > 1. 350b9a6f234da9c2b52fd7aef7c719df -> normal > 2. 27146f253bd03c9858c9d575f0357ee6&W=303 > 3. %25252525252525252525253C?=%252525252525252525252520%252525252525 _ > 2525252524sID;%252525252525252525252520?%25252525252525252 > 4. b3c66de99ed5ae120 > > Nun grübele ich wieso PHP im 2. Beispiel die Variable einfach an der > Sessions-ID hängen lässt und was das ganze überhaupt soll. ein & dient ja eigentlich als Trenner zwischen GET-Paramatern script.php?PHPSESSID=123&W=303 genau wie =, ?, # und noch einige andere hat es also eine besondere Bedeutung und wird somit nicht einfach zum Variablenname oder Dateinamen genommen wenn aber, aus unerfindlichen Gründen, doch mal eine Datei mit einem dieser Zeichen in der URL aufgerufen werden muss, oder eines dieser Zeichen exakt so in einem Parameter vorkommen muss dann muss man dese Zeichen URL-Kodieren und damit verlieren sie Ihre besondere Bedeutung das & wird nicht mehr als Trenner erkennt oder, in der php.ini war das & als Trenner deaktiviert http://php.net/manual/en/ini.core.php#ini.arg-separator.input genau deshalb sollte man http://php.net/http_build_query verwenden um URLs zusammenzubauen - und nicht per Hand. und, die Session-ID sollte überprüft werden bevor sie verwendet wird -- Sebastian Mendel
php::bar PHP Wiki - Listenarchive