Bilder mit PHP durchschleifen um Counts zu zählen - gefährlich?

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

  • Bilder mit PHP durchschleifen um Counts zu zählen - gefährlich?

    Hallo liebe PHP-Gemeinde,

    bei der Suche nach einer Möglichkeit zu erfassen, wie oft ein Bild von meinem Server abgerufen wird (welches andere Webmaster in Ihre Seite direkt mittels <img>-Tag einbauen), bin ich auf folgende Lösung gestoßen:

    Eichhorn Online-Entwicklung

    Dabei fügt der Webmaster der fremden Seite folgenden Code ein:

    Code:
    <img src="/img.php?fn=wood1">
    Und ich kann wiederum mittels folgendem Code in der img.php-Datei die Einblendung erfassen und somit zählen:

    Code:
    <?php
    
    $fn = ($_GET['fn']=='wood1');
    
    if ( $fh=fopen("MeinServer/Bilder/$fn.gif","r"))
    	{ 
    		header("Content-type: image/gif");
    		fpassthru($fh);
    		fclose($fh);
    	}
    ?>
    Frage: Könnte ich das obige PHP-Skript so verändern, dass ich aus dem IMG-Tag ausbrechen und irgendwelchen Code in die fremde Seite einfügen kann? Denn genau das soll nicht möglich sein, ich will dem Webmaster ja was liefern, was er bedenkenlos in seine Seite einbauen kann.

    Vielen Dank für eure Hilfe!! Obige Lösung wäre halt viel einfacher als mein Server-Log zu parsen nach den Bildaufrufen...
    www.FrozenEmotions.de

  • #2
    Auf den ersten Blick sieht das ganz ok aus, so lange man bei dir keine Bilder hochladen kann. Siehe dazu diesen Hack und auch diesen Hack. Dazu solltest du zusätzlich mit getimagesize arbeiten. Und ggf. noch mit is_file und file_exists. Ansonsten macht das einen ganz guten Eindruck.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Zitat von FrozenEmotions Beitrag anzeigen
      Frage: Könnte ich das obige PHP-Skript so verändern, dass ich aus dem IMG-Tag ausbrechen und irgendwelchen Code in die fremde Seite einfügen kann?
      Code in das Dokument, in dem das eingebunden wird, einfügen, ist damit selbstverständlich nicht möglich - denn es handelt sich ja um eine externe Ressource, die der Browser in einem zweiten Request anfordert. Was dein Script ausgibt, landet ja nicht in diesem Dokument.

      Was möglich wäre, ist dem Browser des Nutzers ggf. ein „Bild“ anzudrehen, das schädlichen Code enthält. Ältere IE-Versionen interpretier(t)en unter entsprechenden Umständen bspw. JavaScript-Code, der als Bild oder Teil eines solchen „getarnt“ ausgeliefert wurde. Ausserdem gab es in der Vergangenheit auch eine Reihe anderer Lücken, in denen Fehler in den Anzeigemodulen für bestimmte Bildformate die Einschleusung und Ausführung von Code auf dem anzeigenden System ermöglichten.
      Allerdings ist dieses Problem natürlich vollkommen unabhängig davon, ob das Bild von einem Script ausgeliefert wird, oder ein „normales“, statisches Bild wäre. Wer dir also genug vertraut, dass er "wood1.jpg" von deinem Server direkt in seine Seite einbinden würde, der kann das mit "/img.php?fn=wood1" genauso bedenkenlos tun, das macht hinsichtlich der Sicherheit Nullkommanull Unterschied.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Ich danke euch beiden für die hilfreichen Antworten! Jetzt glaube ich das Ganze verstanden zu haben.
        Auf jeden Fall gibt es bei mir kein Upload-Formular oder dergleichen, sondern ich stelle schlicht und einfach ein Bild zur Verfügung das auf meinem Server liegt.

        Wünsche euch noch ein schönes WE und nochmals DANKE!!!
        www.FrozenEmotions.de

        Kommentar

        Lädt...
        X