Flashhilfe.de - Flash Community

Dateiupload und Typüberprfüfung

 


AntwortenRegistrieren Seite1  

clash2002#1
Benutzerbild von clash2002
Beiträge: 6
Registriert: Apr 2004

16.06.2010, 13:10

hey Ho,

folgendes Problem:

Ich bin gerade dran einen Dateiupload zu realisieren. Dazu hab ich ein normales HTML Formular erzeugt mit einem InputFeld Typ FILE.

Das Hochladen funktioniert auch, jetzt bin ich aber dabei die Datei auf dateityp hin zu untersuchen, da nur jpgs und flvs erlaubt sind. Die mach ich mit Hilfe des MimeTyp.

$_FILES['thefile']['type'] liefert mir demnach bei einem FLV "video/x-flv"

Also mach ich einfach ne if Abfrage ob der Mimetyp der hochgeladenen Datei entweder "video/x-flv" oder "image/jpeg". Also Skript auf den Server geladen und ausprobiert. Funkt bei mir unter Win7 mit den browsern Firefox, Chrome und IE

Beim Kolleg unter Win Vista funktionierts nicht. Meine Fehlersuche hat bereits ergeben dass bei ihm folgende Ausgabe für $_FILES['thefile']['type'] erscheint:  "application/octet-stream"

Also scheints irgendwie am Betriebssystem zu liegen, den  $_FILES['thefile']['type'] gibt den mimetyp aus, den der User liefert.


Wie löse ich das Problem? :D
Werbung
Beiträge: 0
Registriert: Feb 2016


jomac#2
Benutzerbild von jomac
Beiträge: 89
Wohnort: CH
Registriert: Jun 2010

16.06.2010, 14:08

Der Mime-Type kommt vom Browser (und der benutzt je nachdem die Information vom System).
Ob die Angabe tatsächlich stimmt weisst du dadurch als kein bisschen.
Eine andere Möglichkeit wäre z.B. Fileinfo oder einfach die Dateiendung zu überprüfen.
stealth_axg#3
Benutzerbild von stealth_axg
Beiträge: 172
Wohnort: Wiesbaden
Registriert: May 2009

16.06.2010, 14:51

@jomac
ich stimme dir zu mit Fileinfo, aber "...einfach die Dateiendung überprüfen..." ist der schlimmsten Fehler, den du machen kannst! Da könnte man sich gleich die Prüfung sparen!

PS: Bau noch eine Größenbeschränkung pro File ein, sonst ist der Webspace extrem schnell voll.
ODER überprüfe das Verzeichnis per Cronjob.
Actionscript...O.o?.... Ist das ein neues Gewürz, was stinkt?!

API für C++ & Java
jomac#4
Benutzerbild von jomac
Beiträge: 89
Wohnort: CH
Registriert: Jun 2010

16.06.2010, 15:00

Was ist daran ein Fehler?
Dass alles was vom Client kommt nicht in Ordnung sein kann sollte jedem klar sein.
Die Prüfung des Mime-Types bringt da wie gesagt rein nichts. Selbst wenn die nicht selbst mit der Dateiendung gemacht wird, es ist sehr einfach schädlichen Code an ein gültiges Bild z.B. in JPG Format anzuhängen.
Die Prüfung könnte man sich für die, die wissen wie man es umgeht eh sparen, aber normalerweise geht es bei der Prüfung nur um eine Zuordnung.
Was man danach mit dem File macht kann dann ein Fehler sein, aber nicht ob man die Dateiendung oder den Mime-Type mit Fileinfo prüft.
Werbung
Beiträge: 0
Registriert: Feb 2016


clash2002#5
Benutzerbild von clash2002
Beiträge: 6
Registriert: Apr 2004

Themenautor/in

16.06.2010, 15:13

$typ = mime_content_type('php.gif');


Würds damit gehn, wenn ich für php.gif die hochgeladene Datei nehme?

Den Mimetyp kann ich ja erst bestimmen, wenn die datei hochgeladen ist. Kann ich eine Dateiüberprüfung vor dem upload nur mit javascript realisieren oder? Und dann nochmal auf dem Server mit php.
jomac#6
Benutzerbild von jomac
Beiträge: 89
Wohnort: CH
Registriert: Jun 2010

16.06.2010, 15:39

Es sollte damit funktionieren, wenn die extension installiert ist.
Nach der offiziellen Doku solltest du mime_content_type nicht mehr verwendunden und dafür finfo mit FILEINFO_MIME benutzen.
stealth_axg#7
Benutzerbild von stealth_axg
Beiträge: 172
Wohnort: Wiesbaden
Registriert: May 2009

16.06.2010, 17:28

@jomac
kompromiss:
80% aller User/"Hacker" kann man mit 20% der Arbeit(Fehlermeldung beim Upload) vertreiben. Die restlichen 20% bekommt man gar nicht oder man muss mindestens 80% an Arbeit investieren.
Actionscript...O.o?.... Ist das ein neues Gewürz, was stinkt?!

API für C++ & Java
Sleepingbeast#8
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

16.06.2010, 23:23

Hallo zusammen,

ich hab mal vor einer ganzen Weile eine Art kleines Tutorial zum Dateiupload geschrieben. Wenns der Gemeinde hilft, kann es unter http://bittenbyrat.de/daten/dateiupload/dateiupload_mit_php5.pdf (PDF/ca. 340 kB) heruntergeladen werden.


Patrick
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
clash2002#9
Benutzerbild von clash2002
Beiträge: 6
Registriert: Apr 2004

Themenautor/in

17.06.2010, 10:02

Cool Danke. Anschaulich erläutert.

Aber das Problem mit dem MimeTyp würd auch bei deiner programmierung zu einem Fehler führen. Es muss doch eine Lösung dafür geben.
jomac#10
Benutzerbild von jomac
Beiträge: 89
Wohnort: CH
Registriert: Jun 2010

17.06.2010, 12:23

Ich weiss nicht inwiefern du dich dem bewusst bist, aber sehr viele Dateiformate haben ein paar Merkmale, aber hängen sonst beinahe nur von der Dateiendung ab, ausserdem wäre es seeeehr sehr auwändig eine Datei auf all diese möglichen Merkmale hin zu testen.

Die Lösung von oben hast du ja, aber wenn du wirklich die Dateien auf ihre genaue Struktur prüfen willst schau dir den Standard der Dateien an. Fileinfo macht das bereits zu einem Teil, unter dem Link in der Doku findest du genügend Beispiele, aber selbst dann ist es wie gesagt ziemlich einfach etwas zusätzliches anzufügen.

In seinem Beispiel testet er auch einfach die Dateiendung und das sollte in den meisten Fällen vollkommen genügen, denn normalerweise ist nur eine Zuordnung verlangt (bzw. Verbot/Erlaubnis).
Wenn das nicht genügt, dann solltest die Datei auslesen und nach dem Standard wieder aufbauen. In vielen Datei-Formaten könntest du dadurch "schädlichen" angehängten Code oder von was auch immer du Angst hast entfernen.

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de