echtheit von dateiendung

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

  • echtheit von dateiendung

    gibt es eine möglichkeit mit php eine datei(-endung) auf echtheit zu überprüfen? also zum beispiel die kontrolle ob ein hochgeladenes gif auch tatsächlich ein gif ist und kein jpeg? die endung kann man ja manipulieren, müßte also schon was sein, was den dateiinhalt kontrolliert...

  • #2
    Re: echtheit von dateiendung

    Wenn es nur um Bilder geht, hilft dir getimagesize

    Btw: Die Suchfunktion hätte dir dabei auch geholfen!

    Kommentar


    • #3
      Wohl eher eine der imagecreate() Funktionen, weil getimagesize() nicht zwischen gif und jpg unterscheidet.
      Stelle die Dateiendung fest und versuche das Bild mit der entsprechenden imagecreate-Funktion zu öffnen. Gemäss Manual wird ein Leerstring zurückgegeben wenn beim Öffnen ein Fehler aufgetreten ist.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Original geschrieben von jahlives
        weil getimagesize() nicht zwischen gif und jpg unterscheidet.

        tuts nicht?????????????


        Original geschrieben von http://de2.php.net/getimagesize
        ...2 ein Flag je nach Grafik-Typ (1 = GIF, 2 = JPG , 3 = PNG, SWF = 4)
        **********
        arkos
        **********

        Kommentar


        • #5
          tuts nicht?????????????
          Tut's doch und wieder was gelernt
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            ok, sorry... das mit dem bild war ja nur ein beispiel... es kann ja auch vorkommen das upload überhaupt kein bild ist, dann muss ja auch entsprechend reagiert werden... beispiel .txt ist eigentlich eine .exe oder ähnliches...

            überprüft getimagesize tatsächlich die datei oder nur die endung?

            Kommentar


            • #7
              überprüft getimagesize tatsächlich die datei oder nur die endung?
              Tatsächlich die Datei, aber wie der Name schon sagt nur für Bilder...
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Den mime_type überprüfen und fertig.

                Kommentar


                • #9
                  könnte evtzl so klappen??

                  PHP-Code:
                  $myCommand "file /pfad/zur/datei/".$file;
                  system($myCommand$rueckgabe);

                  echo 
                  $rueckgabe
                  dann die rückgabe mit ner whitelist vergleich und "fieslinge" sofort löschen...."
                  **********
                  arkos
                  **********

                  Kommentar


                  • #10
                    http://de.php.net/manual/de/ref.fileinfo.php

                    by the way

                    PHP-Code:
                    $sFilename 'test.jpg';
                    $sBash 'file -i ' $sFilename ' | cut -d ":" -f 2 | cut -d ";" -f 1';
                    exec($sBash$sRealMimeType);
                    print 
                    trim($sRealMimeType[0]); 
                    OffTopic:

                    PS:

                    Hihi mal wieder eine nette Spielerei:

                    Code:
                    [15:42:26] toe@toe:~$ php filetype.php -file test.jpg
                    test.jpg mime type: image/jpeg
                    [15:42:27] toe@toe:~$ mv test.jpg test.exe
                    [15:42:30] toe@toe:~$ php filetype.php -file test.exe 
                    test.exe mime type: image/jpeg

                    PHP-Code:
                    <?php
                    $sFilename 
                    $_SERVER['argv'][2];
                    $sBash 'file -i ' $sFilename ' | cut -d ":" -f 2 | cut -d ";" -f 1';
                    exec($sBash$sRealMimeType);
                    print 
                    $sFilename " mime type: " trim($sRealMimeType[0])  . "\n";
                    ?>

                    Zuletzt geändert von Skaschy; 20.11.2007, 15:46.

                    Kommentar


                    • #11
                      Original geschrieben von Skaschy
                      Den mime_type überprüfen und fertig.
                      Der immer noch vom Browser gesetzt wird, somit manipulierbar und folglich nicht integer ist

                      @arkos: Ich habs nicht getestet, aber wäre das durch manipulierte Dateinamen nicht evtl. einen TICKEN unsicher
                      [FONT="Helvetica"]twitter.com/unset[/FONT]

                      Shitstorm Podcast – Wöchentliches Auskotzen

                      Kommentar


                      • #12
                        @arkos: Ich habs nicht getestet, aber wäre das durch manipulierte Dateinamen nicht evtl. einen TICKEN unsicher
                        meinste?? imho liest der shell befehl "file" doch "nur" den dateityp aus.. hat je mit ausführung eines schadhaften programmes noch nicht so viel zu tun, oder??
                        **********
                        arkos
                        **********

                        Kommentar


                        • #13
                          Original geschrieben von arkos
                          meinste?? imho liest der shell befehl "file" doch "nur" den dateityp aus.. hat je mit ausführung eines schadhaften programmes noch nicht so viel zu tun, oder??
                          Full Ack! Wobei etwaige Zeichen gestripped werden sollten.

                          Kommentar


                          • #14
                            Original geschrieben von arkos
                            meinste?? imho liest der shell befehl "file" doch "nur" den dateityp aus.. hat je mit ausführung eines schadhaften programmes noch nicht so viel zu tun, oder??
                            Ein Freizeichen & ein Pipe reingeschmuggelt, und schon interessiert mich file nicht mehr
                            [FONT="Helvetica"]twitter.com/unset[/FONT]

                            Shitstorm Podcast – Wöchentliches Auskotzen

                            Kommentar


                            • #15
                              so meinste das... ok... dass $myCommand sicher generiert und $file vorab geprüft wird hab ich mal naiverweise vorausgesetzt, sorry
                              **********
                              arkos
                              **********

                              Kommentar

                              Lädt...
                              X