MIME-Types

Dateien klassifizieren

In der Welt des Internets kann jede Datei eindeutig einem MIME-Type zugeordnet werden. Die Definition des MIME-Types besteht aus zwei Teilen, die mit Schrägstrich (Slash /) getrennt werden:
Medientyp (die "Familie")/Subtyp.
Für ein PNG-Bildes sieht das also so aus: image/png. Der zweite Teil, der Suptyp, entspricht oft der Dateiendung, dies ist aber nicht immer so.

Links

Vorankündigung beim Tauschen von Dateien

Browser und Server reden miteinander, bevor sie Dateien tauschen. Unter anderem Sie kündigen zuerst an, welche Art von Datei verschickt wird. Dazu dient der MIME-Type. Im Bild sieht man die Vorankündigung vom Server:

http-Dialog Browser und Client
Bildquelle: Seobility Wiki

Beim Datei-Upload kündigt der Browser an, welcher MIME-Type die Datei haben wird, die hochgeladen werden soll. Leider kann das jedoch gefaked werden, du als Entwickler:in kannst dich also nicht darauf verlassen.

Schlau wieder der Fuchs: MIME Sniffing mit PHP

Schnüffelnder Fuchs
Bildquelle: Tambako The Jaguar auf Flickr

Viel besser ist es, sich nicht auf die Vorankündigung des Brosers zu verlassen, sondern mit PHP am MIME-Type der Datei zu schnüffeln, wenn diese auf dem Server angekommen ist und in der Quarantäne-Station im temporären Verzeichnis liegt (s. Beispiele).