Henryk Plötz: HTTP-Server Algorithmus Verhindern des Ausbrechens aus docroot

Beitrag lesen

Moin,

Gibt es einen allgemeingültigen Programmalgorithmus, womit man bei HTTP-Servern das Ausbrechen aus dem docroot verhinden kann, oder muss man wirklich zunächst die file-ressource referenzieren und dann vor dem Ausliefern prüfen, ob diese im docroot liegt?

Die übliche Vorgehensweise ist erstmal aus dem Pfad einen kanonischen zu machen indem sämtliche Spielereien entfernt werden: alle ../ auflösen und alle ./ durch nichts ersetzen, ggbf. zwischendurch noch symbolische Links auflösen. Den Pfadnamen braucht man sowieso für allerlei Prüfungen (z.B. wenn für /foo besondere Rechte nötig sind und für /bar nicht, willst du nicht dass man die Rechteprüfung durch Benutzung von /bar/../foo umgehen kann) und da kann man dann auch trivial sehen in welchem Verzeichnis er liegt.

--
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~