Simbyte: Bilder werden manchmal nicht angezeigt

Beitrag lesen

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?