Ich arbeite an einem Skript, um Benutzern zu ermöglichen, ein bestimmtes Verzeichnis zu durchsuchen, das nicht das Verzeichnis ist, in dem sich diese Datei befindet, sondern in einer Variablen festgelegt ist.Auflistung eines Ordners Inhalt: Wie verhindert man, dass Benutzer über das autorisierte Verzeichnis gehen?
define('FOLDER', '../_files/');
Jetzt ermöglicht das Rendred HTML, Unterordner in diesem Ordner zu navigieren. Ich benutze eine "dir" -GET-Variable, um meinem Skript mitzuteilen, welcher Inhalt des Unterordners angezeigt werden soll und einen Link "..", der es erlaubt, nach oben zu gehen, wobei dieselbe dir-Variable verwendet wird.
Ich habe eine Überprüfung, dass, wenn $ _GET ['dir'] ist gleich FOLDER, sollte es nicht angezeigt, dass ".." Link. Aber es ist einfach genug, sich mit der Variablen zu beschäftigen, die sich in der URL befindet, und wo immer ich das tue, erlaubt mein Skript, über dem autorisierten Ordner zu blättern. Nicht gerade eine sichere Situation ...
Also ich denke, ich sollte den vollständigen lokalen Pfad des autorisierten Verzeichnisses gegen das angeforderte Verzeichnis überprüfen und wenn letzteres nicht innerhalb der autorisierten ist, nicht die ".." .
Aber ich weiß nicht, wie das geht. Irgendwelche Hinweise oder Zeiger würden geschätzt werden. Danke
Auch wenn der Titel es nicht weggeben, das ist im Grunde die gleiche Frage wie http://stackoverflow.com/questions/1066930/sending-variables- for-php-Dateisystem-Funktionen-mit-Formular-Vorlage/ – deceze
Ja, ähnliches Problem/Lösung. –