Hallo zusammen,
bin dabei gerade eine webgesteuerte Applikation zu erstellen, über die auch Daten auf Fileservern gelöscht werden können.
Über Postdaten wird ein relativer Pfad übermittelt.
Diesem wird natürlich noch der Root-Pfad vorangestellt.
Vor dem Löschen findet noch ein
abfrage statt, ob der Pfad tatsächlich existiert.
Nun frage ich mich, wie ein User den String manipulieren kann dass bei der Löschaktion ungewollte Daten/Ordner oder gar ab '/' sprich Root gelöscht werden kann.
Grundsätzlich bin ich schon auf folgendes gestoßen:
Hiermit entferne ich schon mal rekursive alle '../' Pfadabgaben über die man auf Root gelangen könnte.
Reicht das oder kennt hier noch jemand andere Tricks, die man beachtet sollte?
Allgemeine Kommentare zu meinem Vorgehen sind natürlich auch sehr willkommen.
bin dabei gerade eine webgesteuerte Applikation zu erstellen, über die auch Daten auf Fileservern gelöscht werden können.
Über Postdaten wird ein relativer Pfad übermittelt.
Diesem wird natürlich noch der Root-Pfad vorangestellt.
Vor dem Löschen findet noch ein
PHP:
file_exists($filename)
Nun frage ich mich, wie ein User den String manipulieren kann dass bei der Löschaktion ungewollte Daten/Ordner oder gar ab '/' sprich Root gelöscht werden kann.
Grundsätzlich bin ich schon auf folgendes gestoßen:
PHP:
while( preg_match('/(\.\.\/)+/', $filepath) )
{
$filepath = preg_replace('/(\.\.\/)+/', '', $filepath);
}
Reicht das oder kennt hier noch jemand andere Tricks, die man beachtet sollte?
Allgemeine Kommentare zu meinem Vorgehen sind natürlich auch sehr willkommen.
Zuletzt bearbeitet: