Seite 1 von 1

HTTP Upload

Verfasst: Freitag 16. März 2012, 12:02
von mzh
Liebes Forum
Bitte verweist mich auf ein Python Modul, welches bei einer Datei die über eine HTML Form hochgeladen wird erkennt, ob sich darin Python- oder anderer Computer Code befindet und das meldet.
Danke für Hinweise.

Re: HTTP Upload

Verfasst: Freitag 16. März 2012, 12:19
von lunar
@mzh: Ein solches Modul gibt es nicht. Wofür brauchst Du sowas?

Re: HTTP Upload

Verfasst: Freitag 16. März 2012, 12:28
von webspider
Die Fragestellung hat irgendwie recht wenig mit dem Titel zu tun.

Re: HTTP Upload

Verfasst: Freitag 16. März 2012, 12:45
von snafu
Es gibt aber zumindest Module zum Erkennen des Dateityps. Je nach Kontext kann das vielleicht schon ausreichend sein.

Das mimetypes-Modul käme mir als erstes in den Sinn. Das arbeitet aber nur auf Dateiendungen und das kann man, wenn man eh nur einen bestimmten Dateitypen behandeln will, genau so gut selber machen.

Sofern es etwas fortgeschrittener sein darf, dann such einfach mal nach `magic` in Verbindung mit Python. Als erster Ansatz hier mal die Ergebnisse von PyPi.

Re: HTTP Upload

Verfasst: Freitag 16. März 2012, 12:58
von mzh
Ja, der Titel sollte wohl lauten: Validierung von upload content.
Also, worum es geht ist, wir schreiben hier eine Seite, in der etwas hochgeladen werden kann. Wie kann validiert werden, dass sich im hochgeladenen Dokument nicht Code befindet?

Re: HTTP Upload

Verfasst: Freitag 16. März 2012, 13:05
von deets
Das hier waere ein Schritt:

https://github.com/ahupp/python-magic

Letztlich bist du damit aber natuerlich nur beschraenkt sicher - denn wenn jemand zB eine libpng-Luecke ausnutzt + dann da einen exploit benutzt hilft dir das nicht.

Wie werden denn die hochgeladenen dateien benutzt?

Re: HTTP Upload

Verfasst: Freitag 16. März 2012, 13:09
von mzh
die hochgeladenen dateien sollten eigentlich recht standardisiert sein, im PDB Format (verwendet in Kristallographie). Also grundsätzlich Atomkoordinaten mit Anmerkungen zwischendurch. Die Datei wird eingelesen und weiterverarbeitet.

Re: HTTP Upload

Verfasst: Freitag 16. März 2012, 13:13
von EyDu
Ich sehe aber noch nicht die Stelle an der herausgefunden werden muss, dass es sich um ausführbaren Code handelt. Es genügt doch zu testen, ob die Datei in gültigem PDB-Format vorliegt.

Re: HTTP Upload

Verfasst: Freitag 16. März 2012, 14:16
von mzh
ja stimmt eigentlich. Wenn die Datei nicht in gültigem Format vorliegt, dann wird das Programm einfach abstürzen. Was ja eigentlich nichts verwerfliches ist. Es wird jedenfalls nichts eval-uiert.

Re: HTTP Upload

Verfasst: Freitag 16. März 2012, 14:22
von Hyperion
Wenn das ein verbreitetes Format ist, dann findet sich doch bestimmt ein Parser oder gar ein Tool, welches die Korrektheit einer solchen Datei überprüfen kann. Das könnte man dann von Python aus aufrufen und somit die Validität überprüfen.

Aber wenn Du damit eh ein Programm fütterst, welches mit einem korrekten File rechnet, dann wird das ja selber hoffentlich eine geeignete Fehlermeldung produzieren, wenn man es mit Schrott füttert ;-) Auch diese kannst Du dann ja dem User als Feedback präsentieren oder aufbereiten.