O'Reilly logo

PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren by Stefan Esser, Christopher Kunz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

8 Upload-Formulare192
Code im Bild interpretiert, da die Funktion include() erst den vorhan-
denen PHP-Code ausführt und dann die Ausgabe zurückgibt.
8.7 Andere Dateitypen überprüfen
In der PHP Extension Community Library (PECL) gibt es eine Erwei-
terung für PHP, mit der man den MIME-Type verschiedener Dateien
prüfen kann. Diese Extension heißt FileInfo.
Die Extension FileInfo
Installiert werden kann diese Extension mithilfe des PEAR-Instal-
lers, mit
phpize oder als dynamische Extension – die einfachste Vari-
ante ist sicher der PEAR-Installer, der sämtliche notwendigen Einstel-
lungen selbsttätig vornimmt, jedoch nicht überall funktioniert.
pear install fileinfo
Manuelle Installation als
dynamische Extension
pear download fileinfo
tar -xzvf fileinfo.tgz
cd FileInfo
phpize
./configure && make && make install
Nachdem Sie die Extension kompiliert und installiert haben – die
Installation ist lediglich ein Kopiervorgang ins für die aktuelle PHP-
Installation relevante extension_dir (etwa /usr/lib/php o.ä.) – müssen
Sie sie noch in der php.ini eintragen:
Extension=fileinfo.so
Des Weiteren werden die Dateien mime.magic und mime benötigt. In die-
sen beiden Dateien befinden sich Dateifragmente, die in einer Datei
vorkommen müssen, um diese als einen bestimmten Dateitypen zu
identifizieren. Eine Datei kann man nun wie folgt überprüfen:
<?php
$info = new finfo(FILEINFO_MIME,"./magic");
echo $info->file("/tmp/test.doc");
?>
Eine Überprüfung des
MIME-Types einer Word-
Datei
Folgendes Ergebnis sollte hier ausgegeben werden:
application/msword
Hier kann zwar eine Datei identifiziert werden, aber es kann immer
noch schädlicher PHP-Code in einer Datei enthalten sein.
Installation mit dem
PEAR-Installer

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required