Moin,
Ist die obige Variante auch so grob fahrlässig wie die untere?
Ja. Was passiert etwa wenn jemand ../../../datei als Datei übergibt? ../../../etc/passwd ist zum Beispiel beliebt, da es die Benutzerdatenbank des Systems (in der Regel) enthält. Die Anzahl der ../ muß natürlich entsprechend angepasst werden.
Bei solchen Gelegenheiten willst du _immer_ basename() auf die Dateinamen anwenden um sicherzustellen, dass es wirklich Dateinamen ohne Verzeichnisteil sind (oder eine äquivalente Prüfung).
--
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~