Daniel: fremde dateien linken

Hallo,
wir haben hier das Problem, daß von einer fremden Site aus notorisch unsere
RealAudio files gelinkt werden. Wenn wenigstens einmal höflich gefragt worden
wäre... aber die behaupten kackfrech, das sei alles 'with permission' und sind auch
ansonsten offensichtlich nicht zurechnungsfähig.
Kurzgesagt, ich habe ein freeware perl script ein wenig modifiziert, so daß es
das .ram (Metafile mit dem URL des zu streamenden Audiofiles) bei Aufruf schreibt -  
man kann also mit wenig Aufwand jeden Tag Verzeichnisnamen ändern, ohne jeden
Link auf jeder Seite ändern zu müssen, aber wirklich sicher ist das ja auch nicht.

Gäbe es eine Möglichkeit komplett zu verhindern daß files von einer fremden Domain
aus abgerufen werden? Ich bin leider kein Backend Experte, aber wenn ich den
Artikel über .htaccess richtig verstanden habe, ist es damit nicht möglich, wir haben
natürlich nicht soviel Lust von unseren Besuchern zu verlangen sich erstmal
ein Paßwort abzuholen, um in den Genuß der Musik zu kommen.

Vielen Dank im Vorraus, beste Grüße,
Daniel

  1. Hi,

    Gäbe es eine Möglichkeit komplett zu verhindern daß files von einer fremden Domain
    aus abgerufen werden? Ich bin leider kein Backend Experte, aber wenn ich den
    Artikel über .htaccess richtig verstanden habe, ist es damit nicht möglich,

    Weißt Du die IP-Adresse der Domain? Du kannst auch IP-
    Adressen(präfixe) mit "deny" gezielt ausschließen ...
    das würde aber nur wirken gegen ein Skript aus dem
    entsprechenden Domain-Bereich, also eines, was auf
    deren Server läuft (und deshalb diese IP-Adresse mit-
    schickt) und Deine Dokumente "absaugt" (LWP::Simple::get
    und Ähnliches).

    Gegen einen normalen Link hilft es nicht, weil dann die
    mitgeschickte IP-Adresse diejenige des Besuchers ist,
    der von der fremden Seite kommt.
    Um Dich hier zu wehren, bräuchtest Du ein CGI-Skript,
    über welches Du die Zugriffe laufen läßt (bei geeigneter
    Server-Konfiguration geht das auch für Dateien mit belie-
    bigen Endungen, also unsichtbar und kompatibel zu beste-
    henden Links) und darin z. B. den HTTP_REFERER abfragst.
    (Wenn der denn mal zuverlässig mitgeliefert wird ...
    *da* bin ich eher skeptisch ... ausprobieren ...)
    Das Skript sollte ggf. gleich eine Negativliste von
    IP-Pattern aus einer Konfigurationsdatei lesen
    (Wartbarkeit) ...

    mfG - Michael

    1. »»  Du kannst auch IP-

      Adressen(präfixe) mit "deny" gezielt ausschließen ...
      das würde aber nur wirken gegen ein Skript aus dem
      entsprechenden Domain-Bereich, also eines, was auf
      deren Server läuft

      Scheidet aus, es geht eher um direkte Zugriffe durch Links.

      Um Dich hier zu wehren, bräuchtest Du ein CGI-Skript,
      über welches Du die Zugriffe laufen läßt (bei geeigneter
      Server-Konfiguration geht das auch für Dateien mit belie-
      bigen Endungen, also unsichtbar und kompatibel zu beste-
      henden Links) und darin z. B. den HTTP_REFERER abfragst.

      Sowas in der Art habe ich ja probiert, die files werden über ein
      script aufgerufen, in dem der Verzeichnispfad sozusagen 'versteckt'
      ist. Bei falschem Referrer gibts nix.
      Aber wenn man diesen Pfad herausbekommt (gibt da leider eine
      Schwachstelle im RA Player) kann man ja leider das script leicht
      umgehen und wieder direkt auf das file linken.

      Oder kann man über cgi jeden Zugriff auf ein komplettes Verzeichnis
      beeinflußen?

      Daniel

      1. Hi,

        Sowas in der Art habe ich ja probiert, die files werden über ein
        script aufgerufen, in dem der Verzeichnispfad sozusagen 'versteckt'
        ist. Bei falschem Referrer gibts nix.
        Aber wenn man diesen Pfad herausbekommt (gibt da leider eine
        Schwachstelle im RA Player) kann man ja leider das script leicht
        umgehen und wieder direkt auf das file linken.

        Das ist dann aber Dein "Fehler". ;-)

        Statt auf die "versteckte" Datei zu "forwarden", kannst
        Du sie einfach selber ausgeben (open(), print(), close()).

        Die Datei kann dann in einem Bereich liegen, der sich
        außerhalb des URL-Raumes Deines Servers befindet - auf
        den kann *niemand* zugreifen. Dein Skript jedoch greift
        auf Dateien zu, nicht auf URLs ...

        Anhaltspunkte für die Ausgabe Deiner Dateien:

        • Ausgabepufferung?
        • Binärdaten? (binmode etc)
        • MIME-Typ mitschicken (http-header - das mußt Du
            jetzt selber machen, bisher tat es der Webserver
            für Dich).

        mfG - Michael

        1. Statt auf die "versteckte" Datei zu "forwarden", kannst
          Du sie einfach selber ausgeben (open(), print(), close()).

          Na, sowas ähnliches mache ich ja auch, das script schreibt
          mit print ".." den .ram string. Ich kenne mich echt nur unzureichend
          mit cgi/backend Sachen aus, aber spontan stelle ich mir vor, daß
          es ein ziemlicher Streß für den server sein müßte jedesmal ein
          komplettes .rm file (ca. 700-800 K) zu öffnen und auszugeben, oder?
          Streamt die Ausgabe dann überhaupt?
          Ich probier mal aus wie das funktioniert, danke jedenfalls für die
          Anregung!
          Falls dir noch was einfällt, let me know...

          Schöne Grüße, Daniel

          1. Hi,

            spontan stelle ich mir vor, daß
            es ein ziemlicher Streß für den server sein müßte jedesmal ein
            komplettes .rm file (ca. 700-800 K) zu öffnen und auszugeben, oder?

            Wie sonst soll er denn die Daten lesen und herausschicken, als genau mit dieser Methode?

            Streamt die Ausgabe dann überhaupt?

            Deshalb hatte ich "Ausgabepufferung" angemerkt - da bin ich auch nicht fit, eventuell muß man die irgendwie abschalten.

            mfG - Michael

  2. Hallo Daniel,

    häng' doch einfach einen Handler für RealAudio Files
    in den Apache, der die Auslieferung verweigert, wenn
    als HTTP_REFERER die besagte Site angegeben wird.

    CYa
    GONZO