Christian Seiler: es klappt, es klappt

Beitrag lesen

Hallo Palme,

Übrigens solltest Du bei so einer Konstruktion immer genau prüfen
was in $verweis steht, da sonst User mit einem Aufruf von
index.php?verweis=../../../geheime_passwoerter.txt (o.ä.) sich auch
Dateien anzeigen lassen können, für die sie normalerweise keine
Berechtigung hätten.

Können User dann auch direkt meine PHP-Dateien einsehen? Nein, Oder?

Das nicht, die werden geparsed, aber dafür können böswillige Benutzer andere Systemdateien, die keine PHP-Tags enthalte, auslesen. Daher am besten einen Array mit gültigen Verweisen anlegen und mit in_array prüfen, ob das auch wirklich gültig ist.

Da Du ./ vor das Verzeichnis setzt, schließt Du zwar XSS (Cross site scripting) aus, d.h. niemand kann einen PHP-Quellcode als Textdatei auf einen eigenen Server laden und diesen dann Dir mitschicken, aber der Zugriff auf Systemdateien ist dennoch möglich.

Grundsätzlich gilt, Du musst alle Eingaben, die vom Benutzer kommen, validieren, vor allem, wenn sie kritisch sind.

Grüße,

Christian

--
Sollen sich alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen und nicht mehr davon erfasst haben als eine Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst.
                      -- Albert Einstein