Gunther: Potentielle Gefahren beim Datei Upload

Beitrag lesen

Hi Beat!

FilesMatch ".*$"
matcht "ksdlf", "hdfh.", "dklk..", "fkjkdj..."

Wohl nicht, was du beabsichtigst.

Wenn du willst, dass schlicht alles in diesem Ordner via Browser Dialog zum Speichern angeboten wird, dann verwende ForceType generell, und nicht in einer FilesMatch Direktive.

Ja, sorry. Das kommt davon, wenn man zu schludrig mit Copy & Paste arbeitet ;-). Sollte natürlich FilesMatch ".*" heißen, was ja identisch zu deinem Vorschlag ist.

Was mich aber noch interessieren würde, ist folgendes:
Welche allgemeinen "Gefahren" bestehen denn, wenn ich einem User einen File Upload ermögliche?
Er könnte eine PHP Datei, oder sonst irgendeine ausführbare Datei hochladen, die, wenn sie per HTTP erreichbar ist, dann ggf. "Schaden" anrichtet. Richtig? Sonst noch irgendwelche potientielle Gefahrenquellen?

Wie kann man sich (am besten/ sichersten) vor diesen Gefahrenquellen schützen?

  • Datei in ein Verzeichnis außerhalb des doc root verschieben, bzw. in eines, welches nicht über HTTP erreichbar ist
  • Verzeichnis zugangsschützen mittels .htaccess
  • Dateien im Verzeichnis nur zum Download ausliefern
    mehr?

Und wie sicher ist die Methode mit fgetss()? Laut Manual "Diese Funktion ist identisch mit der Funktion fgets(), außer dass fgetss() versucht, vorhandene HTML und PHP-Tags aus dem gelesenen Text zu entfernen." versucht die Funktion ja, evt. vorhandene Tags zu entfernen. Reicht das nicht aus?

Ich "bearbeite" die hochgeladene Datei ja, indem ich mir nur die relevanten Teile heraussuche. Wenn ich anschließend nur diese in dem File speichern würde, müsste das doch auch einen sicheren Schutz ergeben, oder?

Gruß Gunther