Warning: include(includes/tut/function_code_tut.inc.php): failed to open stream: No such file or directory in /www/htdocs/v089174/ice/printer.php on line 116

Warning: include(includes/tut/function_code_tut.inc.php): failed to open stream: No such file or directory in /www/htdocs/v089174/ice/printer.php on line 116

Warning: include(): Failed opening 'includes/tut/function_code_tut.inc.php' for inclusion (include_path='.:/usr/share/php:..') in /www/htdocs/v089174/ice/printer.php on line 116

Alice-Grafixx.de PHP/MySQL Tutorial

Sicheres Includen

Bei dynamischen Webseiten, werden haeufig Inhalte
mit 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!

© Alice-Grafixx.de - Printed from http://alice-grafixx.de