WinFuture-Forum.de: Wie kommen die POST-Parameter in diesem Formular zustande? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Wie kommen die POST-Parameter in diesem Formular zustande?


#1 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 29. April 2015 - 14:17

Ich habe hier das folgende Formular:
<form name="Form1" method="post" action="pdfdl.aspx?standort=57" id="Form1">
        <div>
            <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTg2OTExNTE0Mw9kFgICAQ9kFg4CAQ8PFgIeBFRleHQFC07DvHJuYmVyZyBIZGQCBA8PFgIfAAUJTmV4dCB3ZWVrZGQCBQ8PFgIfAAUJVGhpcyB3ZWVrZGQCBg8PFgIfAAUOTsOkY2hzdGUgV29jaGVkZAIKDw8WAh8ABQtZb3VyIG1lbnU6IGRkAgsPDxYCHwAFEElociBTcGVpc2VwbGFuOiBkZAINDw8WAh8ABQ5Ba3R1ZWxsZSBXb2NoZWRkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYEBQxJbWFnZUJ1dHRvbjQFDEltYWdlQnV0dG9uMwUMSW1hZ2VCdXR0b24yBQxJbWFnZUJ1dHRvbjEqEFZA+0Wg0IMuCi1o6YA89i6kXw==" />
        </div>

        <div>

            <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="E60F8273" />
            <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQLMp8imAQLSwv2aBALSwsGJCgLSwtXkAgLSwpnTCHgnTi0lUtNsILiMtAmlWcrq0rGv" />
        </div>
        <img id="Image2" src="../pic/cooperate/pfeil.gif" style="border-width:0px;Z-INDEX: 112; LEFT: 0px; POSITION: absolute; TOP: 128px" />
        <font face="Arial" size="4">
            <span id="Label_StandortName1b" style="display:inline-block;color:#336699;font-family:Arial;font-size:Small;font-weight:bold;height:16px;width:368px;Z-INDEX: 117; LEFT: 0px; POSITION: absolute; TOP: 16px">Nürnberg H</span>
            <marquee style="Z-INDEX: 116; LEFT: 0px; WIDTH: 368px; POSITION: absolute; TOP: 144px; HEIGHT: 21px">

            </marquee>
        </font>
        <img id="Image4" src="../pic/cooperate/pfeil.gif" style="border-width:0px;Z-INDEX: 114; LEFT: 0px; POSITION: absolute; TOP: 240px" /><img id="Image3" src="../pic/cooperate/pfeil.gif" style="border-width:0px;Z-INDEX: 113; LEFT: 0px; POSITION: absolute; TOP: 216px" />&nbsp;<span id="Label4" style="display:inline-block;font-family:Arial;font-size:X-Small;width:216px;Z-INDEX: 110; LEFT: 16px; POSITION: absolute; TOP: 240px">Next week</span><span id="Label3" style="display:inline-block;font-family:Arial;font-size:X-Small;width:216px;Z-INDEX: 109; LEFT: 16px; POSITION: absolute; TOP: 216px">This week</span><span id="Label2" style="display:inline-block;font-family:Arial;font-size:X-Small;width:216px;Z-INDEX: 108; LEFT: 16px; POSITION: absolute; TOP: 128px">Nächste Woche</span>
        <input type="image" name="ImageButton4" id="ImageButton4" src="../pic/cooperate/pdf.gif" style="border-width:0px;Z-INDEX: 106; LEFT: 256px; POSITION: absolute; TOP: 240px" /><input type="image" name="ImageButton3" id="ImageButton3" src="../pic/cooperate/pdf.gif" style="border-width:0px;Z-INDEX: 105; LEFT: 256px; POSITION: absolute; TOP: 216px" /><input type="image" name="ImageButton2" id="ImageButton2" src="../pic/cooperate/pdf.gif" style="border-width:0px;Z-INDEX: 104; LEFT: 256px; POSITION: absolute; TOP: 128px" /><span id="Label_StandortName2a" style="display:inline-block;color:#336699;font-family:Arial;font-size:X-Small;font-weight:bold;height:11px;width:368px;Z-INDEX: 101; LEFT: 0px; POSITION: absolute; TOP: 184px">Your menu: </span><span id="Label_StandortName1a" style="display:inline-block;color:#336699;font-family:Arial;font-size:X-Small;font-weight:bold;height:16px;width:368px;Z-INDEX: 100; LEFT: 0px; POSITION: absolute; TOP: 72px">Ihr Speiseplan: </span><input type="image" name="ImageButton1" id="ImageButton1" src="../pic/cooperate/pdf.gif" style="border-width:0px;Z-INDEX: 103; LEFT: 256px; POSITION: absolute; TOP: 104px" /><span id="Label1" style="display:inline-block;font-family:Arial;font-size:X-Small;width:216px;Z-INDEX: 107; LEFT: 16px; POSITION: absolute; TOP: 104px">Aktuelle Woche</span><img id="Image1" src="../pic/cooperate/pfeil.gif" style="border-width:0px;Z-INDEX: 111; LEFT: 0px; POSITION: absolute; TOP: 104px" />
        <script language='JavaScript'> window.open('2015018057de.pdf','_blank'); </script>
    </form>


Wenn ich mir die Header angucke, werden beim Klicken auf ImageButton1 die Variablen
ImageButton1.x=13&ImageButton1.y=7


gesendet. Aber wie kommen die zustande?
Hintergrund: ich will mit dem Webdienst aus meinem Programmcode heraus kommunizieren. Ich will also das Formular selber parsen und die POST-Variablen entsprechend schicken. Diese seltsamen Zeichenketten in __VIEWSTATE usw. bekomme ich bereits hin.

Dieser Beitrag wurde von Kirill bearbeitet: 29. April 2015 - 14:17

Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

Anzeige



#2 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 29. April 2015 - 14:51

Das passiert bei jedem INPUT TYPE=Image. Da wird nicht nur übertragen, DAß auf das Bild geklickt wurde, sondern auch WO. .x und .y geben dabei die Koordinaten in Pixel relativ zum Fenster an. (*)

===
(*) Ist aber schon eine Weile her, daß ich da mit IMAGEs gewerkelt hab. Schau lieber nochmal nach, ob 'relativ zum Fenster' oder doch 'relativ zum Image selber'.

Dieser Beitrag wurde von RalphS bearbeitet: 29. April 2015 - 14:52

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#3 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 29. April 2015 - 15:08

Aha, interessant. Nur wenn die Koordinaten vom Klick abhängen und nicht vorher vom Server bestimmt wurden, wird der Server sie auch nicht überprüfen können. Das wiederum heißt, dass der Grund, warum ich den Code 500 bekomme, ein anderer ist.
Mist, dann heißt es weitersuchen...

Danke!
Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

#4 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 29. April 2015 - 15:29

VIEWSTATE? :unsure:

Meinst Du 'neu generiert' oder 'so übernommen, wie sie dastanden'?

Und dann gibt's da ja noch EVENTVALIDATION. Gefällt mir nicht. Das sieht mir ebenso wie VIEWSTATE nach einem spezifischen Schlüssel aus... wo (mir) nicht klar ist, wie der zustande kommt.

Server Error 500 deutet denn auch darauf hin, daß dieser mit Deinem Input nicht klarkommt... und, warum auch immer, keine Fehlerbehandlung macht.


Klappt es denn wie erhofft, wenn Du einfach eine bekannt funktionierende Konfiguration übermittelst? Oder streikt der Server da auch schon?

Dieser Beitrag wurde von RalphS bearbeitet: 29. April 2015 - 15:30

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#5 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 30. April 2015 - 08:49

Jap. Ich habe die Seite mal lokal gespeichert, das Formular nach GET umgeschrieben und bestätigt. Dann den URI-String mal in mein Programm kopiert und es läuft.
Also heißt es, dass mein Code, der die Variablen aus dem runtergeladenen HTML extrahiert, falsch ist. Leider liest sich dieser Zeichensalat im Debugger wie sich eben Zeichensalat liest. Allerdings scheinen diese Codes oder was auch immer sich nicht zu ändern oder anderes gesagt, dieser Zeichensalat dient nicht der Sicherheit, sondern ist nur aus Spaß an der Freude da. Solange es geht, fahre ich weiter mit der manuellen Copypasta.
Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

#6 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 30. April 2015 - 11:02

... GET ist nicht dasselbe wie POST. Okay, GET sollte sicherlich für die Zwecke genügen (soweit ich das aus dem Fragment oben erkennen kann); aber die Behandlung obliegt dem Server und nicht dem Client und wenn der Server GET will, wird er mit POST nicht können (oder umgekehrt) - auch wenn natürlich beides äquivalent machbar ist (was aber im Gegenzug eine Sicherheitslücke darstellt).

HTML ist auch zum Extrahieren nicht geeignet. Wenn möglich, verwende was anderes (XML- oder JSON-basiert wäre ideal). Mit HTML bleibt das Auslesen ein Glücksspiel, weil sich kaum jemand an gültige(!) HTML-Spezifikationen hält und die Browser sich auch nicht darum kümmern - einfach mal Probe aufs Exempel machen und Seite X durch den W3 Validator laufen lassen... und staunen.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#7 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 01. Mai 2015 - 09:41

Daher habe ich neben der Änderung auf GET auch auf die lokal runtergeladene Kopie umgeleitet, einfach nur damit ich den ganzen String aus der Adresszeile rauskopieren kann.
Ein anderes Format bekomme ich nicht, der Server ist nicht meiner. Wenn es meiner wäre, würde ich den Schwachsinn mit diesen versteckten Inputs ganz abschaffen.
Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

#8 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 01. Mai 2015 - 12:29

Wie gesagt, wenn Du dem Server eine GET-Anfrage gibst und der will aber POST haben, hängt "500 Internal Server Error" vermutlich damit zusammen.

Was den fraglichen String angeht... der wird aller Wahrscheinlichkeit nach eine Anti-Bot-Maßnahme sein = lies: er soll dafür sorgen, daß Anfragen an den Server dann und nur dann ausgewertet sollen, wenn sie von diesem Formular stammen (denn das hat den zugehörigen Schlüssel). Wenn aber Google kommt oder Bing oder sonst ein Crawler... fehlt der Schlüssel in der Anfrage und der Server weiß, aha das muß ich nicht beantworten. Spart also Ressourcen.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0