Loading...   Upload Image

Sicheres IncludenTutorials » PHP/MySQL Tutorials » Sicheres Includen

Verfasst von Alice am 21.07.2006 - wurde schon 12457 mal gelesen

Kategorie: PHP/MySQL
Bewertung:
9x bewertet
Schwierigkeit: einfach
Kommentare: [ 8 ]

keine ...

Sicheres Includen - Tutorial

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!

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 ...


       ALL-INKL.COM - Webhosting Server Hosting Domain Provider