dedlfix: File Upload und Sicherheit

Beitrag lesen

Tach!

ist zumindest eine Dateiendungsprüfung vorzunehmen und nur ein paar harmlose Endungen sollten gestattet werden.

Die Namensendung sichert keine Eigenschaften des Dateiinhalts zu und da es auf jedem Server ein Leichtes ist, selbständig den Inhaltstyp zu ermitteln (Stichwort mimetype), in der Regel mit dem gleichen Aufwand wie deine Endungsprüfung, erscheint mir dein Hinweis eher aus der Kategorie Kinderkram zu stammen.

Die Namenseindung entscheidet in der Regel, was der Server damit macht. Endet eine Datei auf .php, wird sie meist auf dem Server ausgeführt. Endet sie auf .png, passiert auf dem Server meist nichts weiter als eine Auslieferung mit dem dazu konfigurierten Content-Type.

Mächtiges Unwohlsein breitet sich bei mir aus, wenn ich daran denke, dass ein großer Teil der in Benutzung befindlichen Browser sich bisweilen weder um Endung, noch um vom Server mitgeteilten Typ kümmert, sondern empfangene Daten nach Gutdünken selbst bestimmt und verarbeitet. Da ist dein toller Tipp dann für Server, die hochgeladene Daten sofort wieder zum Runterladen zur Verfügung stellen sollen, ein kapitaler Griff ins Klo.

Was die Browser damit machen, kann ich kaum beeinflussen. Mein Anliegen war hauptsächlich, die Sicherheit des Servers nicht zu gefährden, was der Fall wäre, wenn auf dem Server ausführbare Dateien innerhalb des DocumentRoot landen.

Mein erster Vorschlag war ja eine Überprüfung seitens des Serverbetreibers. Das ist nur leider nicht mit allen Anwendungsfällen kompatibel. Was wäre denn ein weniger kapitaler Griff ins Klo, wenn Dateien sofort zum Abruf bereitgestellt werden sollen? Eine umfassende Inhaltsprüfung findet auf dem Server nicht statt. Das was man da üblicherweise als mimetype-Erkennung auf dem Server hat, ist nichts weiter als das Überprüfen von ein paar wenigen "Magic Bytes", um daraus auf den Inhalt zu schließen. Ob der dann irgendwelche Programmierfehler ausnutzend Unheil anstellen kann, ist nicht Gegenstand der Prüfung. Insofern ist eine solche Prüfung nicht viel mehr wert als eine Prüfung der Dateiendung.

Vielen Dank für den ziemlich unfreundlichen Anschiss.

dedlfix.