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.
HTTP Upload
[url=http://www.proandkon.com]proandkon.com[/url]
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.
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.
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?
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]
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?
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?
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]
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.
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]
- 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.
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
assert encoding_kapiert