# Download per Direktlink verhindern



## Tiefschneetaucher (20. April 2007)

Guuuten Abend zusammen,

so entweder bin ich blind oder bekomme es einfach nicht auf die Kette aussagekräftige Schlagwörter für meine Frage zu finden. Jedenfalls habe ich über die Suche keine brauchbare Lösung gefunden.

Die werte Kundschaft möchte das Ihre Downloads auch nur über Ihre Seite heruntergeladen werden könne. Also habe ich mir gedacht, speicherst alle Dateien in einer Datenbank und der Download funktioniert nur über ein Formular. In dem Formular wird über ein verstecktes Feld nur eine datei_id übergeben (sieht der Benutzer ja nicht wenn er nicht grade im Quellcode rumschnüffelt.) Selbst wenn man auf die Idee kommen würde in der URL die datei_id mitzugeben um so direkt auf einen Download zugreifen zu können, wäre das nicht möglich da die ID nur über $_POST akzeptiert wird. 

Jetzt geht das ganze n Schritt weiter. Sollte jemand das Downloadverzeichnis kennen (glaub ich ja nicht dran) und dann auch noch den Dateinamen, 
(
	
	
	



```
http://www.meineseite.de/meinverzeichnis/downloaddatei.pdf
```
) 
daaaann liesse sich darauf zugreifen. Nun meine Frage; gibt es auch eine Möglichkeit das zu verhindern ?

Habe zwar einige Lösungsansätze hier mit htaccess gelesen aber aus den Beiträgen wurde bei den meisten ersichtlicht dass das auch nicht wirklich hilft da PHP dann anscheinen auch nicht mehr darauf zugreifen kann und ein regulärer Download über das Formular somit auch ausfällt.

Habe mal bei einigen Seiten gesehen das ein direktdownload dazu führt das man sich ne .html oder ne .php Datei runterlädt in der dann steht man solle doch über die- und die Seite die Datei runterladen.

Also ich persönlich finde es wie es jetzt im moment ist eigentlich recht „sicher“ – es ist ja keine Große Seite mit viel Traffic oder so, aber interessieren würde mich das ganz natürlich schon.


----------



## birnkammer (20. April 2007)

Doch du kannst trotzdem mit PHP darauf zugreifen (z.B. mir readfile()). Einfach eine .htaccess machen und in dir ereinschreiben: 

```
Deny from all
```
Jedoch darfst du dann in den Ordner keine Dateien stellen, die mit dem Browser aufgerufen werden sollen.


----------



## Tiefschneetaucher (21. April 2007)

Na besten dank für die fixe Antwort =) Heißt allerdings er muss damit leben das es bei Ihm nicht gehen wird denn der Großteil (oder wenn ich es recht überlege .. ALLE..) Downloads sind eigentlich pdf. 

Auf die lässt sich ja auch per Browser zugreifen. Nun jut, aber deine Idee halte ich im Hinterkopf da er meinte er wolle irgendwann Firmenvideos ins Netz stellen - da könnte ich den Ansatz noch einmal aufgreifen.

Gruß


----------



## birnkammer (21. April 2007)

Warum sollte das mit PDF-Dateien nicht auch gehen?


----------



## Tiefschneetaucher (21. April 2007)

ach entschuldige, hab die Antwort nicht richtig gelesen ... aber muss das script was zum Download genötigt wird auch in dem selben Ordner wie die Downloads sein ?


----------



## birnkammer (21. April 2007)

Nein, muss es nicht sein


----------



## campari (22. April 2007)

Wenn Du den Download mit header() anbietest, kann man den physischen Pfad nicht sehen:


```
header("Content-Disposition: attachment; filename=\"$name\""); // Dateiname
header("Content-Length: ".filesize($filename)); // Dateigröße
header("Content-Type: application/octet-stream"); // MIME-Typ
readfile($filename); // Ausgabe
```


----------



## Tiefschneetaucher (24. April 2007)

jupp, der Download wird per Header() angeboten. Habe gestern mal mit htaccess rumgespielt - mit dem Ergebniss das zwar n Download nicht mehr Möglich war. Jedoch so effektiv das auch mein Script nicht mehr drauf zugreifen konnte. Htaccess also wieder runtergeworfen und nun ... geht der Download immer noch nicht. Argh ich weiß schon warum ich nicht so gerne mit der Datei rumexperimentiere. Keine htaccess mehr am Server aber downloads sind immer noch gesperrt *knurr*

Aber trotzdem erstmal danke en beide


----------



## TchiboMann (24. April 2007)

also, zu deinem htaccess problem da kann ich nixx sagen...

aber zum generellen Problem des Direktlink-Verbietens... Ist technisch kaum machbar. Ich weiss, dass das Downloadarchiv vom Gaming Networks (http://www.gaming4all.net/de/) das irgendwie hinbekommen haben den direktlink effektiv zu tarnen, aber wie - das frag mich ma...

meine Erfahrung mit Deeplinking/Direktlinks sind düster. Ich hab keine effektive Methode gefunden Direktlinks zu verbergen, und ich hab mich mehrere Wochen damit beschäftigt. Man kann durchaus per htaccess einen downloadordner per HTTP-Auth schützen und per PHP und einer Socketverbindung den kram tunneln (somit sind direktlinks vollkommen scheissegal^^ weil die AUTH-Daten nicht öffentlich zugänglich sind), aber hier gibts oft fehlfunktionen...

den header-krams habe ich auch probiert, mit null erfolg. Firefox zeigt bei mir immer den direktlink an. Und .exe/.rar-Dateien werden fast zu 100% zerschossen bei mir, zip-files nicht.


ich habs jedenfalls mittlerweile aufgegeben direktlinks zu verstecken. Gut, ich hab 7,5TB traffic frei (praktisch aber immo null begrenzt weil der rtaffic immo nich gecountet wird). Sollte da aber einer extrem-deeplinking betreiben kannste auch ne Anzeige und Schadensersatzklage gegen denjenigen einreichen, der den deeplink veröffentlicht hat. Hab da irgendwo mal n Urteil dazu gelesen, ist schliesslich Diebstahl.


----------



## Gumbo (24. April 2007)

Es ist möglich ein Ticketsystem daran zu koppeln, dass etwa eine bestimmte Bedingung mit der Vergabe eines gültigen Tickets verbunden wird.
So kann beispielsweise die Anzahl der gleichzeitigen Downloads begrenzt oder das Besuchen einer Werbeseite nötig sein, damit ein gültiges Ticket ausgestellt wird. Dadurch könntest du beispielsweise mögliche Mehrkosten verringern oder sogar ganz decken.



TchiboMann hat gesagt.:


> Sollte da aber einer extrem-deeplinking betreiben kannste auch ne Anzeige und Schadensersatzklage gegen denjenigen einreichen, der den deeplink veröffentlicht hat. Hab da irgendwo mal n Urteil dazu gelesen, ist schliesslich Diebstahl.


Es ist kein Diebstahl. Denn Diebstahl ist laut Strafgesetzbuch die Wegnahme einer beweglichen Sache, was bei Traffic ja nicht der Fall ist. Und dadurch, dass du etwas allgemein zum Herunterladen anbietest, trittst du gewissermaßen deine urheberrechtlich zustehenden Vervielfältigungsrechte ab.
Das ist allerdings alles noch eine rechtliche Grauzone. Also schütze dich lieber selbst als auf den rechtlichen Schutz zu warten.


----------



## campari (25. April 2007)

Mir will nicht klar werden, wieso bei per Content-Disposition angebotenen Dateien der direkte Link sichtbar sein sollte? Das einzige was sichtbar ist, ist die php-Datei, von der der header ausgeht, das ist aber auch alles. Wo ist das Problem?


----------



## Badboyws (25. April 2007)

Guten Morgen,

solange es nur um Content in PDF Files geht, bleibt auch immernoch die Möglichkeit, zur Laufzeit ein neues PDF Dokument aus dem alten zu erzeugen, das temporär zu speichern, zum Download anbieten und nach Zeit X wieder aus dem Ordner zu entfernen. Braucht etwas mehr Zeit + Rechenleistung, ist aber die effektivste Methode PDF Files vor dem direkten Download zu schützen. Fällt mir auch grad ein, man könnt ja alternativ über ne Funktion die Datei vom FileArchiveOrdner in einen öffentlichen Ordner kopieren und nach Zeit X wieder entfernen, dann sieht der User auch nur den öffentlichen Ordner und nie den in dem die Datein eigentlich die ganze Zeit ideln  DirektDownload demnach auch nahezu unmöglich


----------

