MimeType und 1&1
T o M
- php
0 Felix Riesterer
0 T o M
0 Tom0 Tom0 T o M
Hallo zusammen,
ich würde gerne mein Dateiupload Script sicherer gestalten, komme aber bei 1&1 nicht weiter. Vielleicht kann mir hier jemand helfen?
Es geht um den MimeType bei Dateiuploads. Den kann man einerseitz prüfen indem man prüft was der Browser übergibt, oder später auf dem Server. Die Browserversion ist mir nicht sicher genug, daher will ich gerne die Version auf dem Server realisieren.
Hierzu habe ich für PHP4 "mime_content_type($_pfad)" bzw. für >PHP5.3 "FileInfo" gefunden.
Eigentlich sind dies ja genau meine Funktionen, doch leider bekomme ich die nicht zum laufen. Ich hab mir ein kleines Testscript gebastelt ...
function gibDateiTyp($_dateiPfad) {
$mimeType = "";
if (function_exists('mime_content_type')) {
$mimeType = mime_content_type($_dateiPfad);
}
else if (function_exists('finfo_open')) {
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
$mimeType = finfo_file($finfo, $_dateiPfad);
finfo_close($finfo);
}
else {
print "Error: MimeType ".$mimeType." von ".$_dateiPfad." konnte nicht ausgelesen werden! Es existiert keine Methode zum Auslesen des MimeTypes.<br>";
}
return $mimeType;
}
~~~ ... doch leider scheinen die Methoden beide nicht zur Verfügung zu stehen. Die Hotline von 1&1 konnte bzw. wollte mir hier auch nicht weiterhelfen...
Kann mir irgendjemand hier verraten wie ich nun doch noch den MimeType von Dateien auslesen kann?
Ich habe natürlich auch schon versucht das Script als PHP5 laufen zu lassen mit "AddType x-mapp-php5 .php" und "AddHandler x-mapp-php5 .php"...
Besten Dank und noch einen schönen Abend!
Tom
Lieber T o M,
hast Du Dir einmal $_FILES ausgeben lassen?
print_r($_FILES); // sollte helfen
Liebe Grüße,
Felix Riesterer.
Hallo Felix,
Der mimetype ib $_FILES wird ja leider vom Browser übergeben, ist also nicht wirklich sicher... Oder meinst du was anderes?
Gruß
T o M
Lieber T o M,
hast Du Dir einmal $_FILES ausgeben lassen?
print_r($_FILES); // sollte helfen
Liebe Grüße,
Felix Riesterer.
Hello,
also ich habe hier auf einem Debian 6.0 die PHP-Version 5.3.3-7+squeeze3 und die Funktion mime_content_type ist noch dabei.
Alternativ kannst Du sie dir selber bauen, wenn exec() erlaubt ist und das Programm 'file' vorhanden ist. Das gibt es für Linux und auch für Windows. Außerdem benötigt man noch das magic_mime_file. Das Programm prüft dann mit Hilfe bestimmter Signaturen, welcher Mime-Type am wahrscheinlichsten ist. Das funktioniert, auf der Konsole ausprobiert, sehr zuverlässig.
Wenn ich wieder zuhause bin, werde ich die Beispiellösung dafür raussuchen und hier posten.
Sie könnte allerdings in einer älteren Version auch schon im SelfHTML-Archiv stehen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
aus dem Archiv rausgepult
http://forum.de.selfhtml.org/archiv/2005/2/t100192/
Ich habe da aber noch eine neuere Version in meinem Archiv. Das ist aber zuhause...
Liebe Grüße aus Braunschweig
Tom vom Berg
Hi Tom,
besten Dank, das funktioniert!