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...
echtheit von dateiendung
Einklappen
X
-
Re: echtheit von dateiendung
Wenn es nur um Bilder geht, hilft dir getimagesize
Btw: Die Suchfunktion hätte dir dabei auch geholfen!
-
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
tobiGutes 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
-
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
-
tuts nicht?????????????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
-
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
-
überprüft getimagesize tatsächlich die datei oder nur die endung?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
-
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
-
Original geschrieben von Skaschy
Den mime_type überprüfen und fertig.
@arkos: Ich habs nicht getestet, aber wäre das durch manipulierte Dateinamen nicht evtl. einen TICKEN unsicher
Kommentar
-
@arkos: Ich habs nicht getestet, aber wäre das durch manipulierte Dateinamen nicht evtl. einen TICKEN unsicher**********
arkos
**********
Kommentar
-
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??
Kommentar
-
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??
Kommentar
Kommentar