Das Größte Problem ist weniger ein Script, das alles löschen kann (denn dazu müsste es ja auch erstmal ein solches Script geben), sondern vielmehr die Möglichkeit, Dteien einzubinden, die nicht eingebunden werden sollen. Beispiel hierfür z.B. die php.ini, .htaccess, passwd oder sonstige Dateien mit sicherheitsrelevanten Informationen darin. Durch die angefügte Endung „.php“ ist es zwar schon schwieriger, jedoch nicht unbedingt unmöglich.
Mit Switch-Case kannst du mehrere Varianten prüfen:
switch (strtolower ($_GET[‚file‘]))
{
case ‚datei1‘:
{
include (‚datei1.php‘);
break;
}
case ‚datei2‘:
{
include (‚datei2.php‘);
break;
}
default:
{
include (‚standard.php‘);
break;
}
}
durch strtolower() wird der String immer in Kleinbuchstaben gewandelt, damit auch bei der Eingabe von „DaTeI1“ „datei1.php“ eingebunden wird. Wichtig ist, dass du für jeden Fall ein „case“ angibst, ebenso, wie es oben steht. Das break; bricht nach der Ausführung des Case’ den Swich ab und setzt direkt danach wieder an, dsa Script weiter abzuarbeiten. Das ist insofern wichtig, da sonst im obigen Fall bei „datei1“ erst „datei1.php“, dann „datei2.php“ und dann „standard.php“ eingebunden werden würde, wäre kein break vorhanden.