Hallöle,
bekomme eben von meinem Provider den monatlichen Newsletter. Den PHP- Tipp kopiere ich einfach mal hierher.
Lieben Gruß, Kalle.
Fileupload mit PHP und Sicherheit
In der Vergangenheit haben wir immer wieder Sicherheitsdefizite beim Upload mit PHP festgestellt. Um diese zu beseitigen geben wir Ihnen hier eine Beschreibung. Man kann ganz einfach prüfen, ob die hochgeladene Datei einem bestimmen MIME-Typ entspricht.
PHP-CODE:
if( $_FILES['userfile']['type'] == "image/jpeg" )
[...] //ok
else
[...] //Fehler
Es wird hier geprüft, ob die Datei (userfile) wirklich den MIME-Typ "image/jpeg" hat. Wenn nicht, könnte z.B. eine Fehlermeldung ausgegeben werden. Man könnte auch auf "image/gif" usw. prüfen.
Eine weitere Möglichkeit ist, einfach den Dateinamen der hochgeladenen Datei selbst zu prüfen.
Mit folgendem Code werden nur Dateien mit der Endung .jpg als "ok" angenommen:
if( preg_match("/.jpg$/", $_FILES['userfile']['name'] )
[...] //ok
else
[...] //Fehler
Das ".jpg" lässt sich durch jede beliebige Endung ersetzen. Das "$" muss allerdings bestehen bleiben, da dies sicherstellt, dass die gesuchte Erweiterung auch wirklich am Ende des Dateinamen steht.
Am besten ist eine Kombination aus beiden Prüfungen.
Weitere, wichtige Informationen finden sich unter: http://de2.php.net/features.file-upload