[PHP] readfile() und skrupel

wolf

Lieutenant
Dabei seit
Nov. 2002
Beiträge
675
hallo an alle,
ich bin grade dabei, ein downloadscript zu schreiben und überlege, wie ich das am besten bewerkstelligen soll, dass man die dateien downloaden kann, aber direktes verlinken nicht geht.
mod_rewrite geht nicht. ich hab aber ein verstecktes verzeichnis auf dem server, auf das keiner direkt zugreien kann, php aber schon.
jetzt bin ich über die funktion readfile() gestolpert, die oft fürs "tunneln" von downloads verwendet wird. jetzt hab ich aber skrupel die zu benutzen. ich habe vor, downloads von bis zu mehreren 100mb anzubieten und ich kann mir sehr gut vorstellen, dass der server unangemessen belastet wird, wenn ich die durchleite.
was auch noch ist: ich nehme an, dass der download dann nach der maximalen ausführzeit von php-scripts, die bei meinem provider gerade mal 15 sekunden sind, abbricht.

gibts da elegantere lösungen? funktioniert readfile() ohne den server arg zu belasten? werden die downloads nach 15 sekunden abbrechen? wenn ja, was kann ich dann machen?

ne menge fragen, gel?! :evillol:
mfg der wolf
 

Phux

Cadet 4th Year
Dabei seit
Apr. 2004
Beiträge
70
Zitat von wolf:
hallo an alle,
ich bin grade dabei, ein downloadscript zu schreiben und überlege, wie ich das am besten bewerkstelligen soll, dass man die dateien downloaden kann, aber direktes verlinken nicht geht.
mod_rewrite geht nicht. ich hab aber ein verstecktes verzeichnis auf dem server, auf das keiner direkt zugreien kann, php aber schon.
jetzt bin ich über die funktion readfile() gestolpert, die oft fürs "tunneln" von downloads verwendet wird. jetzt hab ich aber skrupel die zu benutzen. ich habe vor, downloads von bis zu mehreren 100mb anzubieten und ich kann mir sehr gut vorstellen, dass der server unangemessen belastet wird, wenn ich die durchleite.
was auch noch ist: ich nehme an, dass der download dann nach der maximalen ausführzeit von php-scripts, die bei meinem provider gerade mal 15 sekunden sind, abbricht.

gibts da elegantere lösungen? funktioniert readfile() ohne den server arg zu belasten? werden die downloads nach 15 sekunden abbrechen? wenn ja, was kann ich dann machen?

ne menge fragen, gel?! :evillol:
mfg der wolf

Wie wäre es, das Verzeichniss mit den Dateien, die für den Download bestimmt sind, mit htaccess zu schützen den Zugriff nur für einen bestimmten Referer zuzulassen (nämlich Dein Downloadskript) ?
 

wolf

Lieutenant
Ersteller dieses Themas
Dabei seit
Nov. 2002
Beiträge
675
hab ich probiert und es geht aus mir unerklärlichen gründen nicht. wenn ich eine htaccess-datei hochladen, dann bekomme auch wenn ich z.b. ein bild aus einer erlaubten datei einbinde keine berechtigung.
die htaccess-datei habe ich von trafficklau.de, also die dürfte schon funktionieren. die domainnamen hab ich auch angepasst, von daher wundert es mich an sich schon sehr...:rolleyes:
 

Phux

Cadet 4th Year
Dabei seit
Apr. 2004
Beiträge
70
Hm. Ich war früher auch mal bei einem Provider, da funktionierten htaccess-Dateien nur, wenn man die über sein Admin-Center gebaut hat. Selbst geschriebene funktionierten nie.
Vielleicht ist es ja bei Dir auch so was?

Ansonsten versuch es mal so.
 

wolf

Lieutenant
Ersteller dieses Themas
Dabei seit
Nov. 2002
Beiträge
675
eigentlich müsste ich ja mit folgendem code alle bilder automatisch durch das fakebild ersetzen können:
Code:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^.*endlichfreitag\.com.*$ [NC]
RewriteRule \.(gif|jpg|png|GIF|JPG|PNG)$ http://downloads.endlichfreitag.com/steal.jpg [R,L]
es wird mir aber immer nur das fakebild angezeigt!

[edit]
ok, das hier geht:
Code:
SetEnvIfNoCase Referer "^http://www.endlichfreitag.com" local_ref=1
SetEnvIfNoCase Referer "^http://downloads.endlichfreitag.com" local_ref=1
SetEnvIfNoCase Referer "^http://endlichfreitag.com" local_ref=1
Order Deny,Allow
Deny from all
Allow from env=local_ref
[/edit]
 
Zuletzt bearbeitet:
Top