mime_content_type

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

  • mime_content_type

    hallo,

    damit keine bösen dateien hochgeladen werden lasse ich nur dateien zu mit der endung: rar, zip oder tar.

    ausserdem prüfe ich mit der funktion mime_content_type ob der mime_type der datei stimmt (application/x-zip, aplication/x-rar, usw.)

    ausserdem steht ja in der variablen:

    _FILES['filename']['type'] der mime_type drin.

    in diesem type steht oft octed stream drin was wohl so ein fehler type ist. also wenn man keinen richtigen type finden konnte.

    die frage ist:
    1. wer bestimmt den type im array _FILES, der Browser?
    2. reicht es wenn ich nur mit mime_content_type und der endung prüfe? also brauch ich diesen type aus dem array _FILES überhaupt beachten oder einfach wegschmeissen weil da eh nur müll drin steht?

    3. gibt es sonst noch irgendwelche methoden den type einer datei relativ sicher zu bestimmen?


    danke für alle antworten
    meine Seite mit vielen guten PHP Scripten :

    http://www.ilch.de

  • #2
    1. ja
    2. die endung ist schnuppe. mime_content_type und $_FILES zusammen sind schon recht zuverlässig, aber natürlich nicht hundertprozentig.
    3. ja, die signatur der datei analysieren, das sind meistens die ersten paar bytes am anfang der datei. das ist aber ganz schön umständlich, zumal es viele verschiedene gibt.

    pauschal-ratschlag: baue die anwendung so auf, dass es _egal_ ist, was hochgeladen wurde. wichtig ist nur, dass nichts von alle dem "ausgeführt" werden kann (shell, php, andere scriptsprachen, js beim client, etc).

    bei mir dürften leute alles hochladen, format.exe, virus.vbs und p0rn.avi. wenn es ein bild ist, würd ich das als bild ausgeben, wenn es ein download werden soll - einfach zum download anbieten.

    Kommentar


    • #3
      Re: mime_content_type

      Original geschrieben von ilch
      ausserdem steht ja in der variablen:

      _FILES['filename']['type'] der mime_type drin.
      Nö - da steht das drin, was der Client dir angeben wollte.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        system('file -zbik '.$_FILES['userfile']['tmp_name'])

        Kommentar

        Lädt...
        X