cd_brenner
Aktives Mitglied
Hallo,
zur Zeit betreibe ich auf unserer Website einen Dateidownload bei dem die Datei mit readfile() aus dem nicht öffentlichen Ordner ausgelesen werden um die aktuellen Zugriffsrechte zu prüfen.
Ich möchte auf jeden Fall verhindern, dass Daten, die nicht mehr öffentlich sind heruntergeladen werden, wenn der Besucher den direkten Link besitzt.
Der große Nachteil daran ist die Limitierung von Speicher und Skript-Laufzeit die den Download nach einer gewissen Zeit und v.a. bei großen Dateien abbrechen lassen.
Leider steht mod_xsendfile nicht zur Verfügung, deshalb arbeite ich gerade an einer Lösung mit der ich auch sehr große Dateien unter Berücksichtigung der Zugriffsrechte zum download anbieten kann.
Folgender Ansatz:
Das Downloadskript nimmt den ID-Parameter der zu downloadenden Datei entgegen und kopiert diese in ein öffentlich zugängliches Verzeichnis (falls sie noch nicht dort ist), speichert in der Datenbank die ID und den Zeitpunkt der Anfrage und leitet den User über den Location-Header zu dieser kopierten Datei weiter, worauf der Download startet. Einmal pro Stunde löscht ein Skript alle Dateien deren Anfrage schon länger als - sagen wir - 15min zurückliegt.
Stellt diese Weiterleitung für mit <img src=""> eingebundene Bilder ein Problem dar?
Kann ich auch einen Force-Download-Header verwenden?
Vielleicht ist es besser die Datei direkt zugänglich zu machen und beim Offline-Nehmen einfach umzubenennen, wenn das Directory-Listing abgeschaltet ist, sollte das ja auch recht safe sein, oder?
Vielen Dank vorerst,
Markus
zur Zeit betreibe ich auf unserer Website einen Dateidownload bei dem die Datei mit readfile() aus dem nicht öffentlichen Ordner ausgelesen werden um die aktuellen Zugriffsrechte zu prüfen.
Ich möchte auf jeden Fall verhindern, dass Daten, die nicht mehr öffentlich sind heruntergeladen werden, wenn der Besucher den direkten Link besitzt.
Der große Nachteil daran ist die Limitierung von Speicher und Skript-Laufzeit die den Download nach einer gewissen Zeit und v.a. bei großen Dateien abbrechen lassen.
Leider steht mod_xsendfile nicht zur Verfügung, deshalb arbeite ich gerade an einer Lösung mit der ich auch sehr große Dateien unter Berücksichtigung der Zugriffsrechte zum download anbieten kann.
Folgender Ansatz:
Das Downloadskript nimmt den ID-Parameter der zu downloadenden Datei entgegen und kopiert diese in ein öffentlich zugängliches Verzeichnis (falls sie noch nicht dort ist), speichert in der Datenbank die ID und den Zeitpunkt der Anfrage und leitet den User über den Location-Header zu dieser kopierten Datei weiter, worauf der Download startet. Einmal pro Stunde löscht ein Skript alle Dateien deren Anfrage schon länger als - sagen wir - 15min zurückliegt.
Stellt diese Weiterleitung für mit <img src=""> eingebundene Bilder ein Problem dar?
Kann ich auch einen Force-Download-Header verwenden?
Vielleicht ist es besser die Datei direkt zugänglich zu machen und beim Offline-Nehmen einfach umzubenennen, wenn das Directory-Listing abgeschaltet ist, sollte das ja auch recht safe sein, oder?
Vielen Dank vorerst,
Markus