Regina Schaukrug: geschützter PHP Download auf Windows Server

Beitrag lesen

Im Prinzip geht das, so lange der User (unter dem der Webserver läuft) die Dateien lesen kann. Unter Sicherheitsaspekten besehen ist neben der Authentifizierung und Prüfung eventueller individueller Zugriffsberechtigung(en) insbesondere die Prüfung des Namens der angeforderten Datei bzw. Ressource ein Job, den jemand programmieren sollte, der sehr genau weiß was er da tut.

Sonst steht man Montags bei heise.de

Dein Skript muss folgendes können:

  1. Benutzer authentifizieren (lassen)
  2. Zugriff erlauben oder verbieten
  3. Übergebenen Dateiname/Adresse UMFASSEND prüfen (sind nicht erlaubte Zeichen oder Zeichenfolgen wie "../" oder "..\" drin?), eventuell Abbruch
  4. Überprüfen der Existenz der Datei, eventuell Abbruch, eventuell "Umbau" des Dateinamens
  5. Ermitteln des Content-Types z.b. mit finfo_file()
  6. Senden des Content-Types und weiterer Angaben mit header()
  7. Senden der Datei z.B. mit readfile()