- #1
A
Ace_NoOne
Bekanntes Mitglied
Themenersteller
- Dabei seit
- 07.04.2002
- Beiträge
- 403
- Reaktionspunkte
- 0
- Ort
- Germany
Hallo zusammen,
als relativer PHP-Neuling benötige ich etwas Rat in Bezug auf die Verwendung von INCLUDE:
Meine Website besteht aus den üblichen Modulen: Header, Nav-Menü, Hauptbereich und Footer. Nur der Hauptbereich ändert sich, alles andere bleibt immer gleich.
Nun habe ich mir überlegt, die jeweiligen Inhalte des Hauptbereiches in separaten Dateien zu lagern und diese jeweils per URL-Parameter zu bestimmen. Die entsprechende Inhaltsdatei wird dann per INCLUDE eingefügt.
Allerdings bin ich mir nicht sicher, ob dies ein sauberer und auch sicherer Weg ist.
Zwar lagern die Inhaltsdateien in einem separaten Ordner, sodass (hoffentlich) nicht auf Dateien außerhalb dieses Ordners zugegriffen werden kann - aber vielleicht gibt es noch andere Sicherheitslücken, die ich mangels Erfahrung nicht erkennen kann!?
Hier ist mein bisheriger Code:
Für Kommentare und Anregungen wäre ich dankbar!
als relativer PHP-Neuling benötige ich etwas Rat in Bezug auf die Verwendung von INCLUDE:
Meine Website besteht aus den üblichen Modulen: Header, Nav-Menü, Hauptbereich und Footer. Nur der Hauptbereich ändert sich, alles andere bleibt immer gleich.
Nun habe ich mir überlegt, die jeweiligen Inhalte des Hauptbereiches in separaten Dateien zu lagern und diese jeweils per URL-Parameter zu bestimmen. Die entsprechende Inhaltsdatei wird dann per INCLUDE eingefügt.
Allerdings bin ich mir nicht sicher, ob dies ein sauberer und auch sicherer Weg ist.
Zwar lagern die Inhaltsdateien in einem separaten Ordner, sodass (hoffentlich) nicht auf Dateien außerhalb dieses Ordners zugegriffen werden kann - aber vielleicht gibt es noch andere Sicherheitslücken, die ich mangels Erfahrung nicht erkennen kann!?
Hier ist mein bisheriger Code:
Code:
<!-- Content Area -->
<div id=content>
<?php
// settings
$contentDir = content;
$contentExt = html;
$defaultContent = news;
// get URL parameter
$content = $_GET{content};
// check whether parameter is empty
if ($content == ) {
// set default content
$content = $defaultContent;
} else {
// make sure no parent directory can be accessed
$content = str_replace(../, , $content); // DEBUG: not safe? (e.g. ....////) => disallow all slashes?
}
// check whether respective file exists
$contentSource = $contentDir . / . $content. . . $contentExt;
if (is_file($contentSource)) {
// read content from file
include($contentSource);
} else {
echo Bad parameter: Error reading content source.;
}
?>
</div>
Für Kommentare und Anregungen wäre ich dankbar!