Henryk Plötz: Sicherheit

Beitrag lesen

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! ~~