"include" umgehen wenn kein Inhalt kommt

cris-the-best

Erfahrenes Mitglied
Hallo,

ich habe in meiner index.php ein
PHP:
<?php include("$site.php");?>
eingebaut. Wie gehe ich daran wenn keine Variable übergeben wird das sich eine Alternative seite öffnet?!

Danke
 
Möglichkeit 1:
PHP:
if (!empty($site)) {
   include("$site.php");
}
else
{
   include('default.php');
}

Möglichkeit 2:
PHP:
switch ($site)
   case //Fall1:
   case // Fall2:
     //blablabla;
   default: 'main.php';

Möglichkeit 3:
PHP:
$inc = (!empty($site) ? $site.'.php' : 'default.php');
include $inc;

PS: Das was du vor hast ist sehr RFI/LFI gefährdet.
Das heißt andere können Dateien includieren die du nicht wolltest....
Aber vielleicht hast du ja $site validiert ;)
 
Zuletzt bearbeitet von einem Moderator:
Du solltest zudem noch prüfen, ob der in $site enthaltene Wert einen Pfad einer von dir zugelassenen Datei entspricht, da sonst auch beliebige lokale aber auch entfernte Dateien angegeben werden können, was eine gravierende Sicherheitslücke darstellt (siehe Directory Traversal bzw. Remote File Inclusion).
 
Zurück