dedlfix: File Upload und Sicherheit

Beitrag lesen

Tach!

Das Upload-Verzeichnis sollte außerhalb des DocumentRoot liegen, damit nicht jemand Zeugs hochlädt und gleich vom Webserver ausführen lassen kann.

ich dachte, hochgeladene Dateien werden immer in das i.d. php.ini definierte upload_temp_dir hochgeladen und dann bspw. mit php per move_uploaded_file verschoben. Insofern würde ich denken, wenn das upload_temp_dir ausserhalb des DocRoot definiert ist (wovon ich ausgehe) liegt es in meiner Verantwortung, wohin ich die Files verschiebe.

Genau das Zielverzeichnis des Verschiebens meinte ich, da die temporäre Datei ja nur für die Dauer des entgegennehmenden Scripts im upload_temp_dir verweilt und an dessen Ende gelöscht wird. Deswegen musst du sie ja verschieben und deswegen spielt auch nur dieses Zielverzeichnis eine Rolle - zumindest in meiner Betrachtung. Dass das upload_temp_dir unvernünftigerweise im DocumentRoot liegt, ist hoffentlich nicht in freier Wildbahn anzutreffen.

Und, ohne mich damit nun weiter auseinander gesetzt zu haben, würde ich denken, die Technik ist soweit sicher.

Versuch mal ein paar Dateien mit kritischem Endungen (.php) und auch gefälschtem Inhalt (PHP als .png oder .jpg getarnt) hochzuladen und schau, dass das nciht ausgeführt wird (lass die Testscripte irgendwo eine Datei erzeugen, deren Hoffentlich-Nichtexistenz du prüfen kannst. (Und vorher testen, ob das Script bei ordentlichem Aufruf die Datei anlegen kann).

dedlfix.