Felix Riesterer: Aktuelles Verzeichnis in php

Beitrag lesen

Lieber Rolf,

Was man nicht tun sollte, ist, den erhaltenen Pfad zum navigieren im Filesystem des Servers zu verwenden. Er kann Verzeichnisakrobatik enthalten (foo/../../../../../etc/) und damit ggf. aus dem Document-Root ausbrechen. Ich denke, dass das aber auch für REQUEST_URI gilt.

sehr richtig. Deswegen sollte der REQUEST_URI auch niemals als Pfad des Dateisystems verstanden werden, auch wenn er das manchmal sein mag. Aus Sicht des Scripts ist es ein String, nichts weiter. Davon aber Pfade im Dateisystem abzuleiten ist prinzipiell gefährlich und sollte nur von denjenigen gemacht werden, die wirklich wissen, was sie da wirklich tun und was das wirklich bedeutet.

Es hängt von der konkreten Anwendung ab, welches von den beiden [SCRIPT_NAME oder REQUEST_URI] das gewünschte Ergebnis liefert.

Wenn Du REQUEST_URI verwendest, dann gehst Du offensichtlich weniger von einem Verzeichnispfad aus, weil so ein String prinzipiell alles sein kann. Bei SCRIPT_NAME ist das nicht so offensichtlich. Und wenn Du in einer Anwendung auf das Dateisystem zugreifen willst, solltest Du insbesondere die automagischen Konstanten wie __DIR__ und __FILE__ verwenden, weil die nicht von entsprechend manipulierten Request-Parametern beeinflusst werden können.

Liebe Grüße

Felix Riesterer