Habe diese Lücke schon vor einem Monat an hen! per PN gemeldet.
Habe ihm auch gleich eine Lösung vorgeschlagen, da er jedoch nicht mehr für den Support zuständig ist, werde ich meine Lösung hier preisgeben:
PHP Code:
$sSites = array();
$siteHandle = opendir('pages');
while($sSite = readdir($siteHandle)) {
if($sSite != '..' && $sSite != '.' && $sSite != '.htaccess' && is_dir('./pages/'.$sSite)===false) {
$sKey = substr($sSite, 0, strpos($sSite, '.'));
$sSites[$sKey] = $sSite;
}
}
closedir($siteHandle);
if(isset($_GET['s']) && !empty($_GET['s'])) {
if(isset($sSites[$_GET['s']]) && !empty($sSites[$_GET['s']]) && is_file('./pages/'.$sSites[$_GET['s']])) {
include('./pages/'.$sSites[$_GET['s']]);
}
else {
include('./pages/'.$sSites['home']);
}
}
else {
include('./pages/'.$sSites['home']);
}
Damit erhält man ein Array, in dem alle Seiten gespeichert werden, die sich in "./pages/" befinden. Jedoch werden diese Seiten mit einem Schlüssel gespeichert, der zum Erhalten der Dateinamen notwendig ist. Nur jene Seiten, die sich in ./pages/ befinden, können aufgerufen werden. Somit sollte die genannte Lücke "gefixxt" sein. :P
Natürlich kann man dieses Script auch für den Admin-Bereich ausbauen, jedoch sehe ich im Moment keinen Bedarf dazu, da man dort einen Account mit ausreichenden Rechten benötigt.
Für Diejenigen, die nicht wissen, wie man diesen Fix einbaut. Den Teil damit überschreiben, der zuständig fürs Includen der Seiten ist.
MfG
~Deadly~