phpbar.de logo

Mailinglisten-Archive

[php] upload.php ok im IE, NN und Opera funzen nicht!!

[php] upload.php ok im IE, NN und Opera funzen nicht!!

Joerg Behrens php_(at)_phpcenter.de
Thu, 11 Apr 2002 10:04:22 +0200


Moin,

----- Original Message -----
From: "Oliver Kurlvink" <truheml_(at)_metal.de>
To: "php mailinglist" <php_(at)_phpcenter.de>
Sent: Thursday, April 11, 2002 9:20 AM
Subject: Re: [php] upload.php ok im IE, NN und Opera funzen nicht!!


> > Also wenn ich $bild!="none"  schon sehe. Die PHP Goetter haben dafuer
> > is_upload_file() geschaffen und der einzige Weg zu gucken ob es wirklich
>
> ich verwende gerne !=none :) ich will nämlich wissen ob wirklich eine
> datei angekommen ist bevor ich die funktionen zum dateihandling anstoße
> :) da ist so ein billiger check recht passend :)
>
> > eine Bilddatei ist im  Bildnamen nach der richtigen Endung zugucken und
> > ZUSAETZLICH mittes getimagesize() sich ueber PHP den Typen ermitteln
> > zulassen.
>
> die php-götter haben dummerweise vergessen, dass es jenseits von gif,
> jpeg, png und flash auch noch etwa 3000 andere bildformate gibt, die
> vielleicht auch "valid" sein könnten. aus diesem grund lasse ich z.b.
> per imagemagick überprüfen, ob das bild erkannt werden kann...

Ich verweise noch einmal aufdringlich auf is_upload_file() und nicht die
unart auf 'none' zuueberpruefen. Die PHP-Goetter haben halt schlechte und
gute Tage... welche da so ueberwiegen soll hier nicht das Thema sein :)

Mir ist klar das es so ca. 31337 verschiedene Bild Formate gibt. Die Anzahl
derer die ein handelueblicher Browser so Anzeigen kann duerfte diese Zahl
aber gehoerig Reduzieren. Da es sich hier dann um die ueblichen
Verdaechtigungen handeln wird sollte getimagesize() angewand auf die
temporaere Datei genuegen um sie dann zukopieren/behandeln.

Es gibt im PHP CVS so ein Pedant zu Apaches Magicmime. Das liefert was ein
'file -i name' unter Linux auswirft.
Knackpunkt ist aber ob sich solche Tools oder auch ImageMagick ueberlisten
lassen wenn eine Datei bild.php ankommt die aussehen kann

---
GIF87a~_i
<?php
// boeser code hier wie echo ´rm -rf  *´;
?>
----

Wer die Datei evtl. Resized koennte merken das was nicht stimmt. Wie aber
sich ein JPEG verhaelt das in den APC Bloecken Zusatzdaten aufnehmen kann
die auch ein Resizen ueber leben wuerden moechte ich jetzt garnicht
ausprobieren.
Da Bilder aber meisten in einem oeffentlich zugaenglichem Bereich des htdocs
liegen waere es unschoen wenn andere dort solcher Art Trojaner hinterlegen
koennten.

Wie man sieht gibt es genug Fallstricke bei der ganzen Geschichte und
erzaehle bitte nicht das du alle bedacht hast wenn im ersten Schritt mit
'none' gearbeitet wird :).

Gruss
Joerg Behrens

--
TakeNet GmbH                        Mobil: 0171/60 57 963
D-97080 Wuerzburg                 Tel: +49 931 903-2243
Alfred-Nobel-Straße 20            Fax: +49 931 903-3025


php::bar PHP Wiki   -   Listenarchive