keine ...
Sicheres IncludenTutorials » PHP/MySQL Tutorials » Sicheres Includen
Sicheres Includen - Tutorial
Bei dynamischen Webseiten, werden haeufig Inhaltemit einem einfachen Include-Befehl "eingefuegt"...
Dies ermoeglicht Angreifer das auslesen von Passwoerter,
das loeschen aller Dateien usw.
Dies möchte sicherlich niemand gerne haben.
Um einen include()-Aufruf also abzusichern und sicherzustellen,
dass weder fremde Dateien noch Scripte als Parameter, von einem "experimentierfreudigen Besucher", angehängt werden, helfen nur ein paar Code-Zeilen.
Voraussetzungen dafuer ist eine einheitliche Dateistruktur!
Es muessen sich ab jetzt alle Dateien, die eingebunden werden sollen,
im Verzeichis /includes befinden und die Endung .inc.php beseitzen.
Als erstes muss ein Array angelegt werden,
in dem alle Dateien dieses Verzeichnisses ohne Endung stehen.
Dadurch entsteht ein Array, in dem alle erlaubten GET-Parameter stehen.
Bei dem eigentlichen include()-Befehl steht nun nur noch eine if-Abfrage,
die das angelegte Array überprüft und alle anderen Anfragen auf die Startseite schickt.
<?php
$inc_array = array();
$inc_dir=opendir ("./includes"); // Oeffne Ordner include
while ($inc = readdir ($inc_dir)) {
if($inc != "." && $inc != "..") {
$short_inc = str_replace(".inc.php", "", $inc);
array_push ($inc_array, $short_inc);
}
} closedir($inc_dir); // close Ordner include
if (isset($_GET[site]) && in_array($_GET[site], $inc_array) ) {
include("./includes/".strip_tags($_GET[site]).".inc.php");
} else {
include("./includes/start.inc.php"); // Startseite
}
?>
Bei ./includes/start.inc.php müsst ihr eures Startseite eingeben,
diese muss sich im Ordner includes befinden und die Endung inc.php besitzen!
Kommentar schreibenHinterlasse einen Kommentar
Du musst angemeldet sein, um einen Kommentar zu hinterlassen...
Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...