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:
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['file'] 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 entstehen?