PHP-Lösung für die Validierung von Datei-Pfad

Brauche ich, um zu überprüfen übergeben Datei-Pfad, bevor es auf den Datenträger geschrieben werden und die neue Verzeichnis-Struktur, für die es erstellt werden. Zum Beispiel haben wir $path = "/uploads/base/../../user_new_dir/img.jpg". Dies ist der falsche Weg durch die "/.." ("/uploads/base" - erlaubt das speichern Verzeichnis "/user_new_dir/img.jpg" - Benutzer angegebenen Pfad und Dateinamen).

Kann ich nicht verwenden realpath($path), weil es funktioniert nur mit vorhandenen Dateien. Ich kann nicht mit realpath(dirname($path)), denn wir können erstellen Sie neue Ordner für speichern der Datei.

Ich Suche script, das prüft, ob alle möglichen Fälle. Ich mache mir sorgen, dass ich vermisse so etwas wie multi-byte-Darstellung '.' Charakter oder andere unerwartete Weise, das kann Sicherheitsprobleme verursachen. Könnten Sie entsprechende Beratung Umsetzung meiner Aufgabe in jedem framework oder cms, so konnte ich hineinschauen?

Warum sind die Nutzer übergeben Dateipfade?
Beste Weg: schreiben Sie keine Dateien basierend auf vom Benutzer bereitgestellten Informationen. Stellen Sie sich Ihre eigene zufällige Dateinamen.
Hat auch den Vorteil, nicht versehentlich ermöglicht Benutzern das überschreiben von Dateien.
Warum nicht einfach überprüfen .. im string?
Dies ist für private Administrators Teil, so konnten wir sparen hochgeladenen Dateien nicht auf web-server lokales filesystem, aber wir würden senden Sie diese an den master-server. Weil dieses, die wir unterstützen müssen-variable directory-Struktur. Es gibt anderen Schutz wie erlaubt IPs und Kontrolle der erlaubten Upload-Ordner.

InformationsquelleAutor Axel Foley | 2013-01-13

Schreibe einen Kommentar