• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

zu Testzwecken File-Upload simulieren

mfx

New member
Hallo,

Ziel wäre es, ein kleines Test-Skript auf JavaScript-Basis zu schreiben, das ein File-Upload-Formular mit unterschiedlichen Inhalten abschickt bzw. das Abschicken simuliert, um noch offene Probleme im verarbeitenden Backend aufzuspüren.

( Es geht in dem Fall also NICHT darum, den grauen Standard-Button neben dem File-Upload-Feld wegzubekommen / umzustylen. ;) )

Kennt jemand ein Skript, das die Aufgabe des automatisches Starten eines File-Uploads ohne Zutun des Users (wobei die hochgeladenen Daten nicht aus einer Datei auf dem localhost kommen müssen / dürfen, die sollten on the fly generiert und als Multipart angehängt werden, geht ja nur um eine Simulation zu Testzwecken).

Lässt sich so ein File-Upload simulieren? Hat jemand evtl. Beispielcode dafür parat?

Gruß vom Ralf



Hinweis: Das File-Input-Feld per JavaScript zu befüllen, um anschließend das Formular per JavaScript abzuschicken, funktioniert nicht, weil das von den Browsern aus Sicherheitsgründen verwehrt wird.
Man wird den Request also anderweitig simulieren müssen.
 
Bin zwar kein Profi aber nur mal so zum besseern Verständnis. Warum simulieren und nicht testweise ne Subdomain mit dem zu testenden Script erstellen und dann gleich richtig testen? (wow ne menge 'test' in den Satz)
 
Mit "richtig testen" meinst Du wahrscheinlich "manuell testen". Könnte man auch, müsste man bisher auch... :) Aber da sollen massenweise Requests mit z.T. vollkommen zufälligen und z.T. nach einem best. System zusammengestellten Daten generiert werden und am Ende soll in Logs geschaut werden, wo es noch Schwachstellen gibt.

Wenn man da jeden File einzeln manuell hochlädt und das Formular abschickt, kann man mit Wochen und Monaten rechnen, abgesehen davon, dass einem die Lust vorher vergehen wird... :)
 
Hinweis: Das File-Input-Feld per JavaScript zu befüllen, um anschließend das Formular per JavaScript abzuschicken, funktioniert nicht, weil das von den Browsern aus Sicherheitsgründen verwehrt wird.
Man wird den Request also anderweitig simulieren müssen.
Genau das geht nicht, aus den von dir bereits herausgefundenen Gründen. Du kannst keine Dateien ungefragt irgendwo hinladen und JS ist auch nicht in der Lage ein MIME Formular zu erzeugen und zu befüllen.
 
Genau das geht nicht, aus den von dir bereits herausgefundenen Gründen. Du kannst keine Dateien ungefragt irgendwo hinladen und JS ist auch nicht in der Lage ein MIME Formular zu erzeugen und zu befüllen.

Hat man auf JS-Basis also keine Chance oder lässt es sich irgendwie per Iframe (was in dem Zusammenhang öfter erwähnt wird, allerdings ohne konkretes Beispiel) hinbekommen?
 
Wenn es eh nur um das Backend geht, reicht doch, den Request auszulösen.
Und das muss nicht zwingend im Browser passieren und schon garnicht per JS.
Bau dir doch über einen anderen Server ein Script z.B. mit PHP/Perl etc., dass die Requests auslöst.
In Perl beispielsweise würde ich das mit dem Modul LWP und einem File Request machen: LWP - search.cpan.org

Oder mit dem WWW::Mechanzie. Der simuliert komplett einen Browser und beherrscht sogar File Upload: http://search.cpan.org/~jesse/WWW-Mechanize-1.72/lib/WWW/Mechanize.pm#$mech->value(_$name_[,_$number]_)
Dieses Modul würde dann gleich das Original Formular nutzen und es damit indirekt mit testen.
Edit: Der Anker im Link wird vom Forum nicht richtig gedeutet. Im Abschnitt $mech->value( $name [, $number] ) findet man die Erläuterung zum Ausfüllen von Formularfeldern.
 
Zuletzt bearbeitet:
Du kannst auch mit iframes nicht auf ungefragt auf lokale Dateien zugreifen.

Die Daten müssen im Endeffekt nicht in lokalen Dateien verpackt sein. Das, was sich in einer Datei befinden kann, lässt sich zum Zwecke der Simulation auch on the fly generieren. (Ziel des Testes ist es, die Schwachstellen im verarbeitenden Skript bzw. Servlet aufzuspüren.)

Man käme so weit also prinzipiell auch ohne Dateien aus, womit es nur noch um die Frage geht, ob sich ein MIME-Request unter solchen Umständen aus JavaScript (ggf. unterstützt durch jQuery, Dojo, etc.) heraus so konstruieren lässt, dass er aus Server-Sicht von einem gewöhnlichen File-Upload nicht zu unterscheiden ist.
 
Man käme so weit also prinzipiell auch ohne Dateien aus, womit es nur noch um die Frage geht, ob sich ein MIME-Request unter solchen Umständen aus JavaScript (ggf. unterstützt durch jQuery, Dojo, etc.) heraus so konstruieren lässt, dass er aus Server-Sicht von einem gewöhnlichen File-Upload nicht zu unterscheiden ist.
Keine Ahnung ob das geht. Mit dem XMLHttpRequest Objekt kannst du die gesendeten Header manipulieren:
https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#setRequestHeader()

Dann müßtest du versuchen einen Request entsprechenden zusammen zu bauen. Ob es sowas fertig gibt, bezweifle ich, es macht ja wenig Sinn.
 
Man käme so weit also prinzipiell auch ohne Dateien aus, womit es nur noch um die Frage geht, ob sich ein MIME-Request unter solchen Umständen aus JavaScript (ggf. unterstützt durch jQuery, Dojo, etc.) heraus so konstruieren lässt, dass er aus Server-Sicht von einem gewöhnlichen File-Upload nicht zu unterscheiden ist.
Hast du mein Post übersehen?
Ob mit oder ohne Dateien, mein Vorschlag macht genau das! Und zwar ganz ohne künstliche Konstruktionen und irgendwelche Workarounds. Mit einem Serverscript kannst du einen Browser simulieren und beliebig viele Formulare beliebig oft hintereinander absenden und die Response auswerten. Warum hängst du so sehr an der Idee, das mit JS machen zu wollen? Das ist 1. nicht möglich und 2. nicht nötig/sinnvoll.
 
Zurück
Oben