HTTP Upload

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

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.
[url=http://www.proandkon.com]proandkon.com[/url]
lunar

@mzh: Ein solches Modul gibt es nicht. Wofür brauchst Du sowas?
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Die Fragestellung hat irgendwie recht wenig mit dem Titel zu tun.
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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.
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

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?
[url=http://www.proandkon.com]proandkon.com[/url]
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?
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

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.
[url=http://www.proandkon.com]proandkon.com[/url]
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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.
Das Leben ist wie ein Tennisball.
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

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.
[url=http://www.proandkon.com]proandkon.com[/url]
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten