[PHP] if() Frage

mydoys.de

Well-known member
ID: 84968
L
20 April 2006
2.744
124
Hi Leute habe gerade versucht was auf php.net zu finden habe ich aber nicht..

Habe nur eine kleine Frage und zwar arbeite ich mit :

PHP:
if ($endung == "jpg")
{
}

Jetzt möchte ich fragen kann mann das auch so machen das mehre damit angesprochen werden? den jpg kann mann ja auch JPEG schreiben...

geht sowas?
Wenn ja wie

danke für eure hilfe
 
entweder regulärer ausdruck oder alle möglichekiten einzeln prüfen (im besten fall beide strings lowerCase damit auch JPEG und jpeg identisch sind
 
Aberdings ist das sehr sehr wichtig, die Endungen zu prüfen, am Besten mit einer Whitelist, selbst wenn man die Grafik lib zur Prüfung benutzt, um zu prüfen, ob es eine Grafik ist. Man kann ja im (EXIF) Kommentarfeld immernoch beliebige Strings reinpacken wie <?eval($_REQUEST['cmd'])?> und es bleibt immernoch eine gültige Grafik.
Nicht vergessen auf die Spaßvögel aufzupassen, die versuchen, php/perl hochzuladen.
Das Ausmaß des Unheils ist nicht unwesentlich, sollte jemand es schaffen, was hochzuladen, was serverseitig geparst wird.
 
Dein Problem löst du besser mit einem Array und einer Abfrage:

PHP:
<?
$erlaubt = array('jpg','png','gif',...);
if (in_array($endung, $erlaubt)) {
//anweisung
}
?>

Vorteil ist, dein Code bleibt leicht zu warten. Die Endungen lassen sich beispielweise wesentlich schneller erweitern, oder gar aus einer DB auslesen.
 
Icy schrieb:
Nicht vergessen auf die Spaßvögel aufzupassen, die versuchen, php/perl hochzuladen.
Das Ausmaß des Unheils ist nicht unwesentlich, sollte jemand es schaffen, was hochzuladen, was serverseitig geparst wird.

Dabor schuetzt dich aber die Dateiendung nicht ... Ich weiß nicht wie das bei PHP ist ( aber ich denke es wird aehnlich sein ) aber Perl stoert sich nen Dreck um die Endung, entscheidend ist die erste Zeile und da das fuer alle *nix Scriptsorten und Arten gilt, wirds auch fuer PHP zutreffend sein.
 
Icy schrieb:
Aberdings ist das sehr sehr wichtig, die Endungen zu prüfen, am Besten mit einer Whitelist, selbst wenn man die Grafik lib zur Prüfung benutzt, um zu prüfen, ob es eine Grafik ist. Man kann ja im (EXIF) Kommentarfeld immernoch beliebige Strings reinpacken wie <?eval($_REQUEST['cmd'])?> und es bleibt immernoch eine gültige Grafik.
Nicht vergessen auf die Spaßvögel aufzupassen, die versuchen, php/perl hochzuladen.
Das Ausmaß des Unheils ist nicht unwesentlich, sollte jemand es schaffen, was hochzuladen, was serverseitig geparst wird.

Hab ich das so richtig verstanden, dass du eine mit einem Kommentar gespickte korrekte Grafik hochladen willst, die allerdings die Endung *.php hat ?
 
buggle schrieb:
Dabor schuetzt dich aber die Dateiendung nicht ... Ich weiß nicht wie das bei PHP ist ( aber ich denke es wird aehnlich sein ) aber Perl stoert sich nen Dreck um die Endung
Ich behaupte, dann ist der Webserver falsch eingestellt, wenn ohne zutun generell jede Datei serverseitig geparst wird, hat man in diesem Fall sicherlich noch ganz andere Probleme. Komischerweise wird bei mir weder Perl noch PHP geparst, wenn die Datei die Endung .jpg hat.

Johnson schrieb:
Hab ich das so richtig verstanden, dass du eine mit einem Kommentar gespickte korrekte Grafik hochladen willst, die allerdings die Endung *.php hat ?
Genau. Es ist sicherlich möglich, beliebigen Text irgendwo im JPG File zu tun, ohne das es ungültig wird