Includes sicherer machen

Aus der Kategorie »just people«

Fast alle PHP-Schreiber arbeiten mit include(), um Inhalte – meist abhängig von irgendetwas, was dann als GET-Parameter ankommt – einzubinden.

Und fast alle wissen, dass man das absichern sollte.

Mit den folgenden Zeilen kann man recht simpel so einen Include-Aufruf dichtbekommen:

Alle Dateien, die eingebunden werden sollen, liegen im Verzeichis /include und haben die Endung .inc.php – das Script läßt sich aber auch anpassen.

Zuerst wird ein Aarray angelegt, in dem alle Dateien dieses Verzeichnisses ohne Endung stehen – und schon haben wir ein Array, in dem alle erlaubten GET-Parameter stehen.

Beim eigentlichen include()-Befehl steht jetzt nur noch eine if-Abfrage, die das Array checkt und sonst alles andere auf die Startseite schickt.

Neue include-Dateien werden nur in das richtige Verzeichnis gespeichert und sind somit automatisch erlaubt.

<?php
$inc_array = array();
$inc_dir=opendir ("./includes");
while ($inc = readdir ($inc_dir)) {
  if($inc != "." && $inc != "..") {
    $short_inc = str_replace(".inc.php", "", $inc);
    array_push ($inc_array, $short_inc);
  }
}
closedir($inc_dir);

if (isset($_GET[topic]) && in_array($_GET[topic], $inc_array) ) {
  include("./includes/".$_GET[topic].".inc.php");
} else {
  include("./includes/start.inc.php");
}
?>

Wahrscheinlich könnte man das doch eleganter machen – zB das Array irgendwie cachen, aber es läuft und ist wenig Aufwand.


Ähnliche Artikel lesen?

Außerdem schrieb ich zum gleichen oder ähnlichen Themen auch noch …

Ich finde den Artikel super!

Das freut mich natürlich sehr.

Du kannst den Artikel weiter verbreiten
Du meinst, der Artikel könnte auch anderen gefallen? Dann findest Du etwas weiter oben auf dieser Seite, direkt rechts unten am Artikel ein paar Buttons. Damit kannst Du den Artikel per eMail, Twitter, facebook oder google+ weiter verteilen. Ich würde mich darüber freuen.

Mir ein Geschenk machen? Uiuiuiui.
Gefallen Dir meine Artikel immer wieder, schöder Mammon ist Dir aber zu doof? Dann mach mir doch eine Überraschung: Hier findet Du meine amazon-Wishlist mit ausgesuchten und garantiert Freude spendenden Präsenten zwischen fünf und zweitausenfünfhundert Euro – da ist bestimmt was passendes dabei.

Geld? Wow.
Ist Dir mein Artikel darüber hinaus sogar noch etwas wert, dann findest Du bei den Icons zum Verbreiten des Artikels einen flattr-Button. Jeder Euro, der darüber reinkommt geht direkt weiter an netzpolitik.org.

Wer? Was? Warum?

Christian Fischer ist Webworker und schreibt bereits seit 2001 dieses Blog. Es geht um dies und das, Musik, Filme, Konzerte, das Leben allgemein und alles, was mir sonst noch so schreibenswert vorkommt. Hier findest Du eine Übersicht über alle Themen.

Dein Kommentar:

Du möchtest auch so ein hübsches Bild am Kommentar haben? Die Bilder gibts bei gravatar.com
Die Bedingungen für das Buchen eines kommerziellen Kommentars findest Du hier.