ich habe folgende Situation: mein CMS bekommt per Get-Parameter ($target) eine Zieldatei übermittelt. Diese Datei wird zuerst von meinem CMS verarbeitet und dann per eval() ausgegeben.
Gibt es nicht einen Weg, zu verhindern, daß der User dem Request ein weiteres $target anhängt oder dies zumindest zu erkennen?
Allererste Regel: Man sollte die pösen Puben nicht mit der Nase auf die interessanten Sachen stoßen. Verschleiere die Parameter der URL, verschleiere überhaupt Dein CMS, es braucht niemanden zu interessieren, wie Deine Seiten intern funktionieren. Kurz: Benutze nicht index.php?target=bla, sondern /bla. Infos dazu gibt es im Archiv, zum Beispiel unter http://forum.de.selfhtml.org/archiv/2003/7/53813/#m298552.
Damit wäre die größte Hürde geschafft. Du kannst im Anschluss noch prüfen, ob sich die Datei innerhalb des Web-Hauptverzeichnisses ($_SERVER["DOCUMENT_ROOT"]) befindet oder ob sich überhaupt Schrägstriche oder doppelte Punkte ("..") in $target befinden. Du kannst auch mit der Dateiendung arbeiten, so daß nur bestimmte Dateien eingefügt werden können.
Gruß,
soenk.e