Kleines Problem am Hotlinking Script

RageNo1

Erfahrenes Mitglied
Hallo Leute,
ich habe auf guweb.com ein Sript gefunden um das sogenannte Holinking zu unterbinden. Auf dem Server gibt es Probleme mit dem mod_rewrite weshalb ich zu dem Script greife.

Hier das Script im ganzen:
PHP:
<?php
 // Eigene Domain (ohne "www." oder dergleichen)
 $selfdomain = "eigenedomain.de";
 // Verzeichnis der Bilder (kein Slash am Ende!)
 // Relativ zum Verzeichnis dieses PHP-Skriptes
 $imgdir = "bilder";

 // Zusätzlich erlaubte Domain
 $allowdomain = "guweb.com";

 $selfdomain = strtoupper($selfdomain);
 $allowdomain = strtoupper($allowdomain);
 $ref = strtoupper($HTTP_REFERER);
 // protokoll entfernen
 $ref = str_replace("HTTP://", "", $ref);
 // domain extrahieren
 if (strpos($ref, "/")) $ref = substr($ref, 0, strpos($ref, "/"));
 if (($ref=="") || (strpos($ref, $allowdomain))   || (strpos($ref, $selfdomain))) {
   $fn = $PATH_INFO;
                    
   if ((strpos($fn, "../")) || (strpos($fn, "..\\")))
   {
     echo "Zugriffsverletzung"; // Server schützen
   } else readfile($imgdir.$fn); // Datei ausgeben
                     
 } else {
   echo "Kein Zugriff";
 }
?>

Ich habe nun alles in der PHP angegeben und es getestet.
Ich habe dabei meine Eigene Domain angegeben, klar.
Dann unter zusätzlich erlaubte Domains die Zweite Domain eingetragen.
Nun habe ich aber noch eine Dritte Domain und wollte die ebenfalls eintragen dies habe ich dann wie folgt eingetragen:
PHP:
$allowdomain = "eblogx.com", "eblogx.net";
Leider funktioniert das nicht. Wie muss die Zeile richtig aussehen?

Hier einmal zum Testen:
de-domain GEHT
com-domain GEHT
net-domain GEHT NICHT

Wenn man nun direkt auf die Datei linkt wird gefragt ob sie
gespeichert werden soll oder geöffnet: klick hier

Da ist schon das nächste Problem:
Wenn man nun über die Hotlinking Geschichte geht,
wird das ganze als txt bzw html Datei geöffnet. klick hier
Wie kann man das verhindern?

Mfg Ragey
 
Du weisst aber, dass man sich nicht wirklich auf den Referrer verlassen kann?
Der kann zum einen gefaelscht werden, oder er wird garnicht mitgeschickt.
 
RageNo1 hat gesagt.:
Ja leider, eine 100%tige Sicherheit habe ich dadurch nicht aber ich kann es eingrenzen.
Und gegebenenfalls auch User ausgrenzen.
Ich hab mir das Script nicht angesehen, aber ich gehe davon aus, dass ein User der den Referrer nicht mitsendet nicht akzeptiert wird.
 
Welche Probleme gibt es denn mit dem Apache-Modul „mod_rewrite“, sodass du auf ein PHP-Skript zurückgreifen möchtest/musst?
 
Damit das Modul richtig läuft, müssen die Optionen „FollowSymLinks“ und „SymLinksIfOwnerMatch“ aktiviert sein. Steht doch auch in der bereits von mir verwiesenen Liste der FAQ.
 
Ja keine Ahnung Gumbo,
es gibt wohl Probleme damit, das es sich um Apache 2 handelt und dort eventuell etwas mit dem mod_rewrite anders ist. Ich kenn mich mit diesen Server-Geschichten leider nicht so aus.
 
Hallo,
ich habe das Problem mit der dritten Domain hinbekommen:
PHP:
<?php
 // Eigene Domain (ohne "www." oder dergleichen)
 $selfdomain = "domain.de";
 // Verzeichnis der Bilder (kein Slash am Ende!)
 // Relativ zum Verzeichnis dieses PHP-Skriptes
 $imgdir = "ordner";

 // Zusätzlich erlaubte Domain
 $allowdomain = "domain.com";
 $allowdomain2 = "domain.net";

 $selfdomain = strtoupper($selfdomain);
 $allowdomain = strtoupper($allowdomain);
 $allowdomain2 = strtoupper($allowdomain2);
 $ref = strtoupper($HTTP_REFERER);
 // protokoll entfernen
 $ref = str_replace("HTTP://", "", $ref);
 // domain extrahieren
 if (strpos($ref, "/")) $ref = substr($ref, 0, strpos($ref, "/"));
 if (($ref=="") || (strpos($ref, $allowdomain))   || (strpos($ref, $allowdomain2))   || (strpos($ref, $selfdomain))) {
   $fn = $PATH_INFO;
                    
   if ((strpos($fn, "../")) || (strpos($fn, "..\\")))
   {
     echo "Zugriffsverletzung"; // Server schützen
   } else readfile($imgdir.$fn); // Datei ausgeben
                     
 } else {
   echo "Kein Zugriff";
 }
?>

Dazu habe ich lediglich diese Zeile angelegt und entsprechend die anderen relevanten Zeilen angepasst:
PHP:
$allowdomain2 = "domain.net";

Bleibt nun nur noch das Problem mit der Ausgabe:
Wird die Videodatei so geöffnet <klick>, wird gefragt was damit passieren soll.

Über das Script wird die Datei als Text bzw. Html ausgegeben: <klick>
Wie kann ich das verhindern?

Mfg Ragey
 
Zurück