Zugriffe auf das Dateisystem

Wenn man auf die Idee kommt, über Variablen Dateien zu öffnen, kann das eine sehr schlechte Idee sein. Angenommen Sie haben eine Bildergalerie und die Bilder werden in der Form:

PHP-Quellcode
readfile ('/bilder/'. $_GET['bildnummer'] );

geöffnet, ist die Annahme, dass damit nur Bilder und vor allem nur in diesem Verzeichnis Dateien geöffnet werden können, schlicht und ergreifend fahrlässig. Dem String $_GET[bildnummer] kann jetzt genauso auch von außen (wenn die Eingaben ungeprüft übernommen werden) ein "passwort.txt" unterschoben werden. Und zur Erinnerung: Ein Wechsel der Verzeichnisse ist mit "../" möglich. Wenn man solche Geschichten (als Lockvogel) mitprotokolliert, erscheinen dann die üblichen Verdächtigen "../etc/passswwdd". Mehr dazu unter http://www.php.net/manual/de/security.filesystem.php

Daher ist es wichtig, wenn man über eine Variable geht will/muss, die übergebene Variable gegen eine Liste der möglichen (bzw. erwünschten) Eingaben abzuprüfen. Hat man nur wenige Eingaben, dann hilft der PHP-Befehl switch (hier im folgenden Beispiel, da didaktisch geschickt übersichtlich):

PHP-Quellcode:
switch (  $_GET[bildnummer] )
case (1):
    $dateiname = "1.jpg";
        break;
case (2):
    $dateiname = "phpbild.jpg";
        break;
...
default: