Liebe(r) Simbyte,
$pg = $_GET["path"];
[...]
include("inc/$pg.inc");Sicherheitsloch
Wie kann ich dieses Sicherheitsloch ausschalten?
erstelle Dir ein Array mit möglichen includierbaren Dateien (wenn Du willst auch dynamisch anhand der im Include-Verzeichnis vorhandenen Dateien). Includiere dann anhand des GET-Parameters die entsprechende Datei nur bei Vorhandensein des entsprechenden Array-Eintrags.
// man könnte auch dynamisch alle verfügbaren Dateien im Verzeichnis "inc" ermitteln...
$include_dateien = array(
'start.inc',
'dat1.inc',
'dat2.inc',
'dat_spezial.inc',
'dat_egal.inc'
);$pg = 'start.inc'; // Default-Wert
if (in_array($_GET['path'], $include_dateien))
$pg = $_GET['path']; // nur deshalb hier erlaubt, da vorher eine Prüfung auf "vorhanden" stattgefunden hat!!!include "inc/$pg";
>
> Liebe Grüße aus [Ellwangen](http://www.ellwangen.de/),
>
> Felix Riesterer.
Hallo Herr Riesterer,
vielen Dank für Ihre Antwort.
Ich habe das ganze, damit die URLs schöner aussehen folgendermaßen gelöst:
<?php
$files = array("start", "news", "bbb", "bbbb", "cccc", "dddd");
$pg = "start";
if(in\_array($\_GET["path"],$files))
{
$pg = $\_GET["path"];
}
include("inc/$pg.inc");
?>
Ich nehme an das ist immernoch genauso sicher, oder?