Piet: .htaccess: Ausnahme funktioniert nicht

Hallo zusammen,

ich benutze einen Flash-Player auf meiner Webseite. Der Player ist in die Seite media.html eingebunden. Im Quelltext dieser Seite ist eine playlist.xml im Klartext angegeben. Diese Datei enthält wiederum die Links zu den mp3-Dateien, die abgespielt werden können.

Ich möchte gerne die Ausgabe der Playlist im Browser verhindern, um so das Herunterladen der mp3s zu erschweren. Das habe ich mit folgender .htaccess versucht, wobei die xxx für die IP der Webseite stehen:

<Files playlist.xml>
order deny,allow
allow from xx.xx.xxx.xx  // alternativ: .domainname.de oder domainname.de
deny from all
</Files>

Leider funktioniert nichts davon: Der Zugriff auf playlist.xml ist komplett gesperrt; der Player selbst kommt also nicht ran. Die .htaccess liegt übrigens in dem Verzeichnis, in dem sich sowohl die swf-Datei als auch die playlist.xml befinden.

Was mache ich falsch?

Vielen Dank
Piet

  1. Hallo,

    ich benutze einen Flash-Player auf meiner Webseite. Der Player ist in die Seite media.html eingebunden. Im Quelltext dieser Seite ist eine playlist.xml im Klartext angegeben. Diese Datei enthält wiederum die Links zu den mp3-Dateien, die abgespielt werden können.
    Ich möchte gerne die Ausgabe der Playlist im Browser verhindern, um so das Herunterladen der mp3s zu erschweren. Das habe ich mit folgender .htaccess versucht, wobei die xxx für die IP der Webseite stehen:

    <Files playlist.xml>
    order deny,allow
    allow from xx.xx.xxx.xx  // alternativ: .domainname.de oder domainname.de[*]
    deny from all
    </Files>

    Leider funktioniert nichts davon: Der Zugriff auf playlist.xml ist komplett gesperrt; der Player selbst kommt also nicht ran.

    Logisch: Überlege dir, von welchem Host bzw. von welcher IP-Adresse aus der Zugriff erfolgt: Nicht von deinem Server, sondern vom Rechner des Besuchers aus! Und da du dessen IP nicht kennst, ist das Konzept so, wie du es dir vorgestellt hast, völlig unmöglich.

    Abgesehen davon hast du einen weiteren Denkfehler in deinem Konzept: Der auf dem Client-Rechner laufende Player *muss* die Playlist ja herunterladen können, dein Server kann aber nicht feststellen, welche Applikation auf dem Client-Rechner die Ressource anfordert. Ist es der Flash-Player selbst? Ist es ein Download-Manager? Ein Browser? Ein x-beliebiges anderes Programm? wget?
    Es ist unmöglich, den Zugriff auf bestimmte Ressourcen zu beschränken, wenn der Client in der Lage sein soll, diese Ressource zu bekommen.

    So long,
     Martin

    [*] Bitte verwende für Beispiele die dafür vorgesehenen Beispieldomains wie example.org, example.net (nicht example.de!) anstatt frei erfundener, aber real existierender Domains!

    --
    Wenn du beim Kochen etwas heißes Wasser übrig hast, friere es ein.
    Heißes Wasser kann man immer gebrauchen.
    1. Hallo Martin

      Logisch: Überlege dir, von welchem Host bzw. von welcher IP-Adresse aus der Zugriff erfolgt: Nicht von deinem Server, sondern vom Rechner des Besuchers aus! Und da du dessen IP nicht kennst, ist das Konzept so, wie du es dir vorgestellt hast, völlig unmöglich.

      Das hatte ich befürchtet. Aber eigentlich bin ich davon ausgegangen, dass der Player - und der liegt ja auf dem Server - die Datei anfordert.

      Es ist unmöglich, den Zugriff auf bestimmte Ressourcen zu beschränken, wenn der Client in der Lage sein soll, diese Ressource zu bekommen.

      Ich hatte nicht bedacht, dass die Flashdatei sofort auf den Client kopiert wird. Ich hatte vermutet, dass erst die Playlist übergeben wird und der Client dann eine entsprechend angereicherte Kopie des Players bekommt.

      Gibt es denn andere Konzepte, um mit dem Problem umzugehen?

      [*] Bitte verwende für Beispiele die dafür vorgesehenen Beispieldomains wie example.org, example.net (nicht example.de!) anstatt frei erfundener, aber real existierender Domains!

      Danke, diese Domains kannte ich nicht.

      Gruß
      Piet

      1. Hi,

        Das hatte ich befürchtet. Aber eigentlich bin ich davon ausgegangen, dass der Player - und der liegt ja auf dem Server - die Datei anfordert.

        die Bytes, die von einem System als Player interpretiert werden können, mögen auf Deinem Server liegen. Als Player ist er aber nur auf dem Client vorhanden. Dort und _nur_ dort wird abgespielt, was immer abgespielt wird.

        Ich hatte nicht bedacht, dass die Flashdatei sofort auf den Client kopiert wird.

        Willkommen im Netz. Bevor irgendwas auf einem Client vorhanden ist, findet ein Download der entsprechenden Daten statt.

        Gibt es denn andere Konzepte, um mit dem Problem umzugehen?

        Wenn Daten im Netz verfügbar sind, sind sie im Netz verfügbar. Insbesondere in HTTP, welches kein "von" kennt, sind sie damit *frei* verfügbar. Du könntest allenfalls eine Authentifizierung, einen Login oder ähnliches einrichten, müsstest dann aber a) dafür sorgen, dass der Player dies entsprechend beachtet, und b) die Tatsache akzeptieren, dass es ein Leichtes ist, sämtliche benötigten Informationen von außen zu betrachten. Die Anforderung findet schließlich auf dem Rechner des Nutzers statt, er kann sie also sehen.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes