Hallo Lutz,
Das weiß ich nicht, aber ich habe das so gemacht, dass bei mir steht:
$file = 'source/cat/'.$_GET['cat'].'.php';
if (file_exists($file)) {
include $file;
} else {
include 'source/base/html/404.php';
}Ich sehe da keine "Sicherheitslücke", es können ja wohl unabhängig vom Wert in 'cat' nur Dateien aus dem einen Verzeichnis included werden oder?
also, ohne jetzt hier klugsch***en zu wollen: probier mal folgendes:
http://deineDomain/index.php?cat=../../index
oder auch
http://deineDomain/index.php?cat=%E%E%F%E%E%Findex
Habe das ganze lokal getestet ;-) Bei mir kam es dann noch drauf an, welcher Browser. IE bricht anscheinend nach einiger Zeit ab und sagt: Seite nicht gefunden. Firefox lädt und lädt und lädt - und der Quellcode der Datei sieht dann lustig aus.
Als Test hab ich dann noch eine dummydatei namens test.php ins selbe Verzeichnis wie die index.php geschrieben.
Dann funktioniert auch das:
http://deineDomain/index.php?cat=%E%E%F%E%E%Ftest
Na gut, wirklich ne Sicherheitslücke ist es nicht, aber es können (mit etwas Fantasie) durchaus auch Dateien aus einem anderen Verzeichnis includiert werden.
liebe Grüße mbr