Traversal-Lücke?
bearbeitet von Regina Schlauklug> Zweitens ist in dem Skript zum Ausliefern von Nicht-PHP-Ressourcen eine fette Sicherheitslücke, die es erlauben würde, sämtliche auf dem Server befindliche Dateien, die der PHP-Prozess lesen darf, abzufragen. Ich hab das Skript erstmal gelöscht und eine Bemerkung hinterlassen, bevor das noch irgendwo weiter zum Einsatz kommt.
Im von Dir entfernten Abschnitt steht aber:
~~~php
if ( isset($_GET['file']) && $_GET['file'] ) {
$_GET['file'] = './' . $_GET['file'];
$forbidden=array('../', '/..', '/.ht');
$_GET['file'] = str_replace($forbidden, '', $_GET['file']);
~~~
Danach beginnt der Inhalt von $_GET auf jeden Fall mit './' (dem aktuellen Verzeichnis) und ist um alle Zeichenfolgen bereinigt, mit denen auf ein tieferes Verzeichnis und die im Apache gesperrten '.ht-Dateien' zugegriffen werden kann.
Wie soll denn da eine [Traversal-Lücke](https://de.wikipedia.org/wiki/Directory_Traversal) entstehen?