Hallo PHP-Freunde,
folgendes schwirrt mir durch den Kopf:
Meine bisherigen Webseiten oder Anwendungen habe ich immer mit
einer
Bootstrap-Datei umgesetzt, d.h. z.B. meine index.php im Document
Root lädt
den entsprechenden Inhalt per require nach, je nachdem welchen Get-
Parameter ich der Url mitgebe.
Dabei prüfe ich, ob der Parameter gültig ist, indem ich ein Array habe
mit
den gültigen möglichen Werten.
Das dürfte soweit auch ok sein.
Nun habe ich aber eine größere alte Webseite, die ich überarbeiten
muss,
und die möchte ich nun in dieses Schema pressen. Allerdings ist es
ziemlich
aufwendig, jede neue Seite immer wieder in dieses Array einzutragen.
Daher hab ich mir überlegt, ob es nicht auch einfacher geht:
if (isset($_GET["p"])) {
if (file_exists(ABS_PATH . "/" . $_GET["p"] . ".php")) {
require ABS_PATH . "/" . $_GET["p"] . ".php";
}
}
dabei habe ich die Konstante ABS_PATH vorher schon auf ein
entsprechendes Verzeichnis gesetzt, z.b "/var/www/projekt1" und
natürlich
fehlt hier auch noch der else-Zweig etc.
Aber was spricht grundsätzlich gegen diese Vorgehensweise? Habe
irgendwas im Hinterkopf von wegen Protokoll-Wrappern, d.h. ein
Angreifer
könnte über den Parameter eine externe Datei nachladen lassen. Aber
geht
das überhaupt, wenn ich den Pfad schon absolut beim require
angebe?
Und wie machen das z.b. die ganzen MVC-Frameworks, die haben ja
letztendlich auch nur eine vorgegebene Struktur?
Für Tipps bin ich dankbar