PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache Symlink und Anzeige im Browser



Multe
14.04.04, 10:46
Hallo,

ich programmiere gerade ein Skript, das mir Downloads bereitstellt und diese vor "deep linking" schützen soll.

Also Klartext:

Ich biete auf meinem Server für unsere Community Spiele updates (Größe bis zu 500MB) an und möchte, das nur Leute mit bestimmten Vorraussetzungen einen Download machen dürfen.

Das funktioniert soweit schon ganz gut (Login über Forum, mit bestimmter Mindestanzahl von Postings, etc.), nur fehlt das letzte Teilchen.
Es wird immer eine Kopie vom Original angelegt und diese Kopie wird angeboten (mit temopärem Namen). Diese Kopie ist 8 Stunden gültig, dann wird diese gelöscht.
Beim Testen ging das ganz gut, allerdings hatte ich nur kleine Files als Beispiel, bei 500 MB Files dauert das erstens ewig, die Perfomance sinkt und zweitens wird ratzfatz die Platte voll.
Also wollte ich einen Symlink anstatt einer Kopie erstellen.
So nun meine Fragen:

1) In der httpd.conf habe ich unter Options +FollowSymlinks gesetzt, aber ein (mit ln -s erstellter) Link wird nicht gefunden. In der Console (Shell) geht es aber. Was mache ich falsch?

2) Kann man die Symlink-Geschichte auf einen virtuellen Host begrenzen, oder gilt das immer global?

3) Mache ich einen Denkfehler? Ich könnte mir vorstellen das ein Link
www.xyz.info/hasdjhkz34mds_filename (symbolischer Link) beim Download auf das richtige File umgewandelt wird und man den richtigen Pfad sieht (also z.B. www.xyz.info/files1234_geheimesVerzeichnis/file.exe) ?!
Ist das der Fall und wenn ja, wie kann ich sowas verhindern? (Würde es ja gern testen, aber mein Indianer weigert sich ja)

Gruß Malte
PS: Hoffe mein Problem ist ausreichend und verständlich beschrieben.

stefaan
14.04.04, 11:17
Servus!

Und wenn du das über ein PHP-Script (mittels Datenbank löst)?
http://server/download.php?id=se943s73s3sf634

Dieses Script überprüft, ob die ID gültig ist und liefert dann die Datei aus. Über die Headers kannst du ja den richtigen Mime-Typ und Dateinamen übergeben.
Mittels mod_rewrite kannst du dann sogar
http://server/download.php?id=se943s73s3sf634 nach
http://server/download/se943s73s3sf634 umschreiben lassen.

Grüße, Stefan