Mailinglisten-Archive |
Hallo Yannik,
Yannik Hampe schrieb:
> Nein, denn:
> Wenn der Dateiname vom Client ein null-Byte enthält (xyz.php%00.txt)
> Dann wird dir php bestätigen, dass der Dateiname auf .txt endet. Beim
> verschieben der Datei geht alles ab dem nullbyte verloren.
> Um das mal zu verdeutlichen:
> ----
> %php -a
> Interactive shell
>
> php > echo bin2hex("a\0b");
> 610062
> php > var_dump(file_exists("a"));
> bool(false)
> php > touch("a\0b");
> php > var_dump(file_exists("a"));
> bool(true)
> ----
> Wenn du kannst solltest du die Dateien in einem Ordner speichern, der
> für den Webserver nicht zugänglich ist und die Datein umbenennen (zum
> Beispiel mit Hilfe einer id aus einer DB oder mit uniqid. Oder du
> wendest einmal rawurlencode() auf die Funktion an:
> ----
> php > echo rawurlencode("a\0b");
> a%00b
> ----
das mit dem null-Byte habe ich jetzt hoffentlich verstanden. Den
Vorschlag mit rawurlencode() noch nicht. Geht es nicht darum, das
null-Byte zu entfernen?
Könnte ich nicht auch den string aus $_FILES['filename']['name'] in
einer Variaben speichern, diese daraufhin abklopfen, ob ein solches
null_Byte enthalten ist und dann entsprechend die weitere Verarbeitung
mit move_uploaded_file untersagen?
Liebe Grüße
Armin
--
Armin Briatta
Fotografie und Webdesign
Kirchbergweg 2
64367 Mühltal-Trautheim
(0173) 6 54 97 10
www.briatta.de
php::bar PHP Wiki - Listenarchive