Formularabrage umgehen / verhindern
KeinBlase
- javascript
Hallo
Ich habe ein Formular. Bevor man es absenden kann, werden die Fehler mit Javascript validiert.
Ich habe es im Firefox und IE 6 getestet. Es funktioniert wunderbar. Mann kann das Formular nur absenden, wenn die Pflichtfelder ausgefüllt sind.
Nun habe ich aber im System (wo die Anfragen gespeichert werden) gesehen, dass es Anfragen gibt, bei welchen gewisse Pflichtfelder fehlen (nicht alle). Jedoch kann das gemäss meinen Test gar nicht sein.
Darum meine Fragen: Was für Varianten gibt es eine JS-Formularabfrage zu umgehen? Wie konnten diese Anfragen abgesendet werden? Wie kann ich sicherstellen, dass man die Felder ZWINGEND ausfüllen muss.
Thx keinBlase
hi,
Darum meine Fragen: Was für Varianten gibt es eine JS-Formularabfrage zu umgehen?
Javascript abschalten ...?
Wie konnten diese Anfragen abgesendet werden?
Ganz normal.
Wie kann ich sicherstellen, dass man die Felder ZWINGEND ausfüllen muss.
In dem du serverseitig prüfst.
gruß,
wahsaga
Danke für die Tipps...
Hmm...also wenn ich bei mir JS deativiere kann ich aber das Formular nicht absenden, da ich dies wie folgt abfange:
<input style="width: 15em;" onclick="chkFormular();" value="Abschicken" type="button">
Somit muss ich JS aktiviert habe, sonst passiert nichts.
Gibt es noch einen anderen Weg, die Abfragen zu umgehen?
Thx
Hi,
Hmm...also wenn ich bei mir JS deativiere kann ich aber das Formular nicht absenden, da ich dies wie folgt abfange:
das ist *sehr* schlecht. Zum Absenden von Formularen gibt es Submit-Buttons - verwende diese.
Somit muss ich JS aktiviert habe, sonst passiert nichts.
Tatsächlich nicht? Also, mein Browser sendet Formulare üblicherweise auch dann ab, wenn ich in einem Eingabefeld Enter drücke.
Gibt es noch einen anderen Weg, die Abfragen zu umgehen?
Ja, sicher. Beliebig viele.
Cheatah
hi,
Ist das ein get oder ein post Formular?
Jein, das Formular ruft eine Salessystem auf (anderer Server, IP), in diesem werden die Anfrage eingetragen, danach wird auf eine OK seite zurück gelinkt. Um eine Anfrage ans Salessystem zu senden, werden jedoch diverese Daten mitgegeben (via POST, Hiddenfelder. Die OK Seite kann zwar auch manuell aufgerufen werden, jedoch ist dies nur eine normale Seite (somit werden keine daten übermittelt).
das ist *sehr* schlecht. Zum Absenden von Formularen gibt es Submit-Buttons - verwende diese.
Warum denn das? 1. Es funzt sehr gut. 2. es lässt sich so sehr gut stylen 3. es ist so möglich, mehrere Funktionsbuttons darzustellen. Was spricht dagegen? Schliesslich sieht html die Button-Möglichkeit bereit.
Tatsächlich nicht? Also, mein Browser sendet Formulare üblicherweise auch dann ab, wenn ich in einem Eingabefeld Enter drücke.
Kann ich nicht bestätigen, sowohl in IE wie auch im Firefox passiert nichts
Ja, sicher. Beliebig viele.
Zum Beispiel...??
Danke für die Tipps, werde es nun glaubs doch mit PHP serverseitig abfangen, würde mich aber schon wunder nehmen, wie ein Kunde das Formular ohne Plichtfelder absenden konnte.
Gruss und thx
Hi,
Ist das ein get oder ein post Formular?
Jein,
diese Antwort ist falsch. Richtig wäre "ja", denn das Formular hat _garantiert_ entweder GET oder POST als Methode.
das ist *sehr* schlecht. Zum Absenden von Formularen gibt es Submit-Buttons - verwende diese.
Warum denn das? 1. Es funzt sehr gut.
Komisch, in https://forum.selfhtml.org/?t=153792&m=1000861 hast Du gerade noch gesagt, dass es nicht funktioniert.
- es lässt sich so sehr gut stylen
Erstens ist dies mit jedem anderen Element in exakt dem selben Maß möglich, und zweitens wird *NIEMALS* wegen der gewünschten Darstellung der HTML-Code gewählt.
- es ist so möglich, mehrere Funktionsbuttons darzustellen.
So wie mit Submit-Buttons auch.
Was spricht dagegen? Schliesslich sieht html die Button-Möglichkeit bereit.
HTML sieht vor, "normale" Buttons einzubinden, damit Buttons *und* Submit-Buttons existieren. Der Unterschied ist, dass Submit-Buttons dem Submit dienen, während nicht-Submit-Buttons *nicht* dem Submit dienen. Um es deutlich zu sagen:
Du hast gerade die Frage gestellt, warum man Tabellen nicht für Layoutzwecke missbrauchen soll.
Tatsächlich nicht? Also, mein Browser sendet Formulare üblicherweise auch dann ab, wenn ich in einem Eingabefeld Enter drücke.
Kann ich nicht bestätigen, sowohl in IE wie auch im Firefox passiert nichts
Das ist schade für Dich.
Ja, sicher. Beliebig viele.
Zum Beispiel...??
Request per Hand bzw. Programm zusammenfügen, JavaScript-Handler (automatisiert) gezielt entfernen, beispielsweise auch über eine Firewall, Formular per Bookmarklet abschicken, Browser benutzen, der sich um kaputte Formulare nicht kümmert, ...
Danke für die Tipps, werde es nun glaubs doch mit PHP serverseitig abfangen,
Das[1] ist *immer* Pflicht, denn clientseitige Techniken sind *immer* optional.
würde mich aber schon wunder nehmen, wie ein Kunde das Formular ohne Plichtfelder absenden konnte.
Dein Formular ist vom Konzept her defekt. Wie viele Kunden sind keine geworden, weil sie das Formular auch _mit_ Pflichtfeldern nicht absenden konnten?
Cheatah
[1] Die serverseitige Prüfung, nicht PHP, versteht sich.
// Dein Formular ist vom Konzept her defekt. Wie viele Kunden sind keine geworden, weil sie das Formular auch _mit_ Pflichtfeldern nicht absenden konnten?
Warum den das (defekt)?
// [1] Die serverseitige Prüfung, nicht PHP, versteht sich.
PHP ist aber doch Serverseitig... ?
gruss und thx
Hallo KeinBlase!
// [1] Die serverseitige Prüfung, nicht PHP, versteht sich.
PHP ist aber doch Serverseitig... ?
Die _serverseitige Prüfung_ ist Pflicht, der Einsatz von PHP ist es nicht, weil eine serverseitige Prüfung über eine andere serverseitige Sprache erfolgen kann (z.B. Perl o.a.).
Viele Grüße aus Frankfurt/Main,
Patrick
Hi,
Dein Formular ist vom Konzept her defekt. Wie viele Kunden sind keine geworden, weil sie das Formular auch _mit_ Pflichtfeldern nicht absenden konnten?
Warum den das (defekt)?
weil es nur unter Bedingungen funktioniert, die Du nicht voraussetzen kannst.
[1] Die serverseitige Prüfung, nicht PHP, versteht sich.
PHP ist aber doch Serverseitig... ?
Siehe Patricks Antwort.
Cheatah
Ist das ein get oder ein post Formular?
Bei get kann man die Parameter direkt in der Adresszeile eintragen/verändern und dann abschicken...
Wie aber erwähnt, sollte die Prüfung serverseitig stattfinden...
Grüsse,
Richard
Moin
Darum meine Fragen: Was für Varianten gibt es eine JS-Formularabfrage zu umgehen? Wie konnten diese Anfragen abgesendet werden?
einfach JavaScript deaktivieren!
Wie kann ich sicherstellen, dass man die Felder ZWINGEND ausfüllen muss.
serverseitig prüfen, ggf. Seite erneut laden lassen
Gruß
rfb