dedlfix: Hyperlink setzen Verkettete Auswahllisten

Beitrag lesen

Tach!

Das ist sicherheitstechnisch fehlerhaft, weil es sämtliche lesbare Dateien auf dem Server ausliefern kann. Es fehlt beispielsweise eine Überprüfung, dass der realpath() des Dateinamens mit dem beabsichtigten Download-Verzeichnis beginnt.
Korrekt. Deshalb ist es, wie ich schon geschrieben habe, nur zur Veranschaulichung in einer lokalen Testumgebung zu benutzen.

Stimmt, hast du geschrieben. Aber so wie ich das überlesen habe, kopieren sich viele den Code und freuen sich, dass er augenscheinlich funktioniert. Deswegen sollte man, wenn man sie nicht vollständig implementieren möchte, die Sicherheitsprüfung zumindest so andeuten, dass der Code erst dann lauffähig ist, wenn man den Hinweis darauf entfernt oder die fehlende Prüfung eingebaut hat.

Außer der Überprüfung eines gewollten Downloadverzeichnisses mit realpath() kann es _je nach Anwendungsfall_ noch sinnvoll sein
  - sämltliche .ht-Dokumente vom Download auszuschließen
  - PHP-Dateien vom Download auszuschließen (da der source code von PHP-Dateien zurückgegeben würde)
  - den Dateinamen auf ein bestimmtes Pattern zu prüfen ( myproject-[0-9]+.[0-9]+.zip )

Am besten ist allerdings wenn man ein Verzeichnis außerhalb des DocumentRoot hat und dort nur die gewünschten Dateien und nichts anderes reinlegt. Dann kann man sich weitere Prüfungen sparen (außer der realpath()-Prüfung).

dedlfix.