Dateidownloads nur von Hostdomain ohne Fremdverlinkung - wie lösen?

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von 2nd, 19.08.2006.

  1. 2nd

    2nd Thread Starter MacUser Mitglied

    MacUser seit:
    25.07.2004
    Beiträge:
    8.902
    Zustimmungen:
    242
    Moin,

    wie löse ich am besten folgendes Problem:

    Ich habe Videoclips, die ich in 2 Versionen (HiQ und LoQ) zum Download anbiete. Mein Downloadscript (PHP) hat einen eingebauten Zähler und ich übergebe im Link nur eine ID, das Script stellt dann die richtige Datei bereit.

    Ich will aber, dass meine Clips nicht direkt von anderen Homepages aus verlinkt werden, d. h. ich möchte nicht dass

    1. der Link mit der ID von einer andere Domain funktioniert
    2. die Datei direkt von einer anderen Domain verlinkt werden kann (nach Ermitteln des Pfades)

    Lösung 1 könnte ich mir noch so vorstellen, dass ich in meinem Downloadscript den aufrufenden Referrer analysiere und bei Aufruf von !meiner Domain den Schacht dicht mache - jedoch sollen nicht alle Browser einen Referrer übertragen?!? Was ist die Alternative?

    Lösung 2 geht sicher mit .htaccess oder? Wäre das hier die Lösung?

    HTML:
    RewriteEngine on 
    RewriteCond %{HTTP_REFERER} !^$ 
    RewriteCond %{HTTP_REFERER} !^http://domainname.com.*$ [NC] 
    RewriteCond %{HTTP_REFERER} !^http://www.domainname.com.*$ [NC] 
    RewriteCond %{HTTP_REFERER} !^http://domainname.com:80.*$ [NC] 
    RewriteCond %{HTTP_REFERER} !^http://www.domainname.com:80.*$ [NC] 
    RewriteCond %{HTTP_REFERER} !^http://192.168.100.120.*$ [NC] 
    RewriteCond %{HTTP_REFERER} !^http://192.168.100.120:80.*$ [NC] 
    RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$ http://www.domainname.com/nohotlinking.htm
    

    Habe ich bei meinen Bedenken noch etwas wichtiges vergessen?

    Danke,

    2nd
     
  2. kahler

    kahler MacUser Mitglied

    MacUser seit:
    26.09.2005
    Beiträge:
    234
    Zustimmungen:
    0
    Die von dir gepostete .htaccess Datei macht auch nichts anderes, als den Referrer zu prüfen.
    Was eventuell eine Möglichkeit wäre ist eine "zufällige" ID zu vergeben, die nur einmal gilt.
    Nach einem Download wird diese ID verworfen und der Link funktioniert einfach nicht mehr. Da nur du weißt, welche IDs noch frei sind und zu welchem File sie gehören sollte das vor fremden Downloads schützen.
     
  3. 2nd

    2nd Thread Starter MacUser Mitglied

    MacUser seit:
    25.07.2004
    Beiträge:
    8.902
    Zustimmungen:
    242
    Hmm, alles klar. Das mit den IDs klingt ganz gut, in Verbindung mit den htacces-Dingern sollte meiner Meinung nach dann der Schutz ok sein.

    Gibt es sonst noch eine Möglichkeit?

    2nd
     
  4. joedelord

    joedelord MacUser Mitglied

    MacUser seit:
    12.12.2002
    Beiträge:
    481
    Zustimmungen:
    0
    Nur ein Idee. Was passiert wenn du die Files direkt über das script ausgiebst. also
    Code:
    header('Content-type: richtiger Typ...) 
    readfile(filmchen_hi.mpg)
    Sofern das überhaupt geht und nicht den Server beeinträchtigt wenn die files etwas größer werden.

    Um fremdverlinkung zu vermeiden könntest du noch ein Cookie davorsetzen, welches zuvor auf einer deiner Seiten generiert wurde.

    Irgendwie eine etwas wilde Methde, aber vielleicht funktionierts...

    lg, joedelord

    edit: ich verwende das um Statistiken mit einer Chart lib zu erzeugen und anzuzeigen. Diese Bilder werden dann mit <img src="chart1.stat.php"> eingebunden. (Das ist aber alles auch noch untested)
     
Die Seite wird geladen...

Diese Seite empfehlen