Ausgabeproblem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ausgabeproblem

    Hallo,

    da ich mich gegen "Traffic-Klau" schützen möchte, habe ich mir das PHP-Script von folgender Seite besorgt und es funktioniert soweit:

    http://www.guweb.com/postcards/help/antileech.shtml

    Hier also das Original:
    PHP-Code:
    <?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($ref0strpos($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";
     }
    ?>
    Nun möchte ich aber, dass statt "Kein Zugriff" ein Bild ausgeben wird. Also, wenn jemand den Link zum Bild in ein fremdes Forum einbaut, ein Ersatzbild gezeigt wird, wo ich nett drauf hinweisen kann, dass er unrechtes macht.

    So habe ich es jetzt umgebaut, aber leider funktioniert es nicht. Könnt ihr mir da weiterhelfen?

    PHP-Code:
    <?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($ref0strpos($ref"/"));
     if ((
    $ref=="") || (strpos($ref$allowdomain))   || (strpos($ref$selfdomain))) {
       
    $fn $PATH_INFO;

       if ((
    strpos($fn"../")) || (strpos($fn"..\\")))
       {
         
    readfile($imgdir."/notallowed.gif "); // Server schützen
       
    } else readfile($imgdir.$fn); // Datei ausgeben

     
    } else {
       
    readfile($imgdir."/notallowed.gif ");
     }
    ?>
    BTW: eigenedomain.de, guweb.com, bilder habe ich sorgsam ausgetauscht und das Bild "notallowed.gif" befindet sich im geheimen Ordner
    Zuletzt geändert von dirk1968de; 09.09.2003, 00:43.

  • #2
    warum so kompliziert? .htacces löst dein problem:
    http://www.trafficklau.de/htaccess.html
    Kissolino.com

    Kommentar


    • #3
      Hallo,

      danke für den Tipp, funktioniert auch wunderbar. Nur folgendes stört mich bei der .htacces-Lösung:

      Wenn ich das Ersatzbild in einem Forum auf meine Festplatte speicher, habe ich das Bild trotzdem im eigentlichen Original. Nun gut, das Traffic-Problem wäre gelöst, weil wohl kaum einer auf die Idee kommt, so ein Bild abzuspeichern.

      Irgendwie wäre es mir nun doch lieber, wenn ihr mir erklären könntet, wie ich es mit PHP lösen kann, weil da kommt man wirklich nicht an das Bild, wenn man das Verzeichnis nicht kennt.

      Gruß Dirk

      Kommentar


      • #4
        Original geschrieben von dirk1968de
        Irgendwie wäre es mir nun doch lieber, wenn ihr mir erklären könntet, wie ich es mit PHP lösen kann, weil da kommt man wirklich nicht an das Bild, wenn man das Verzeichnis nicht kennt.
        man kommt nur dann nicht an das bild, wenn du es auf keiner öffentlich zugänglichen seite verwendest.

        ich verstehe nicht, was dieses problem mit trafficklau zu tun haben soll.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hallo,

          es ist doch auch egal, ob es um Trafficklau oder Bilderklau geht. Ich bin von dem PHP-Script überzeugt und möchte, dass ein Ersatzbild anstelle von "Kein Zugriff" ausgegeben wird.

          Liegt es daran, dass echo einfach durch readfile ausgetauscht wurde?

          Gruß Dirk

          Kommentar


          • #6
            Original geschrieben von dirk1968de
            Liegt es daran, dass echo einfach durch readfile ausgetauscht wurde?
            na ja, wenn du mit readfile bilddaten ausgibst, solltest du dem browser auch durch einen entsprechenden http-header mitteilen, dass ein bild folgt und kein html (idR standard-mimetype für php-dateien).
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Jetzt wird es kompliziert. Ich weiß einfach nicht, wie ich das dann umschreiben soll. Ich bin der totale PHP-Anfänger.

              Kommentar

              Lädt...
              X