You are not logged in.

  • Login

1

Tuesday, June 7th 2011, 9:34am

Download URL verschleiern

Hallo,

Ich will gerne auf meiner Seite die URL zu einem Download verschleiern und nur den Usern zugriff drauf geben die es erworben haben.

Durch Goggle bin ich nun auf folgende Möglichkeit gestossen.

tar.gz file ausserhalb des www legen und den zugriff per htacess verbieten.
Eine php File anlegen die prüft ob der Kunde diese file Downloaden darf und dann per header() an den Browser seinden.

Ist dies so korrekt?
Wenn die FIle ausserhalb des WWW liegt, muss ich da nicht den Zugriff in der php.ini ändern was wiederum zu einer Sicherheitslücke hinausläuft?

Hätte es gerne innerhalb des WWW gelegt und den ganzen Zugriff ausserhalb speeren.

2

Tuesday, June 7th 2011, 10:13am

Hi,

du kannst die Datei ohne Probleme ausserhalb des DocRoots legen. Wenn du dies tust, muss der Webserver natürlich die Rechte haben dort zuzugreifen.
PHP-Seitig brauchst du nichts einstellen und mit der htaccess brauchst du auch nicht arbeiten, da man ausserhalb des DocRoots nicht via URL auf den Ordner/Datei zugreifen kann.

Es gibt keinen Vorteil die Datei innerhalb des DocRoots zu legen, besser ist es dies nach "aussen" zu verlagen, dann hast du Gewissheit, das niemand über den Browser die Datei direkt runterladen kann.

3

Wednesday, June 8th 2011, 11:40am

Würde dadurch nicht die ganze Datei durch PHP laufen müssen?

4

Wednesday, June 8th 2011, 3:27pm

Würde dadurch nicht die ganze Datei durch PHP laufen müssen?

ja, der Inhalt wird dann gestreamt.

Man sollte dabei die Finger von Funktionen wie file_get_contents lassen, da hier erstmal alles in den Speicher geschrieben wird und bei mehreren Anfragen dieser dann überläuft.
Abhilfe schafft readfile und exit();


Eine andere schöne performanceschonende Alternative ist X-Sendfile. Vorraussetzung ist, dass dies aufm Server installiert ist.

Social bookmarks