• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Sicherheitsfrage

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Hi,
ich hab gerade keine Zeit das auszuprobieren aber vielleicht könnt ihr mir weiterhelfen. Ist folgendes möglich:

1. Formular ausfüllen
2. Formular wird "serverside" überprüft
3. Auf der neuen Seite ist das Formular nochmal (wenn alles geklappt hat) nur diesmal sind die Felder alle "hidden" mit den überprüften Werten
4. Man verändert mit "Web Developers Toolbar" oder Ähnlichem die "values" der "hidden" Felder und drückt auf Submit
5. Die neuen Werte werden eingespeist

Geht der Schritt 4?

LG,
Max

P.S: Ich weiß es ist ein wenig umständlich aber anders geht es momentan nicht.
 
Ja geht. Hier mal auf die schnelle ein Beispiel in CF:
Code:
<cfparam name="form.feld1" default="">
<cfparam name="form.feld2" default="">
<cfif structkeyexists(form,"hide")>
Hier wird das ganze validiert

</cfif>
<cfoutput>
<form action="" method="post">
feld1:<input name="feld1" type="<cfif structkeyexists(form,"hide")>hidden<cfelse>text</cfif>" value="#form.feld1#" /><br />
feld2:<input name="feld2" type="<cfif structkeyexists(form,"hide")>hidden<cfelse>text</cfif>" value="#form.feld2#" /><br />
<input type="submit" name="<cfif structkeyexists(form,"hide")>send<cfelse>hide</cfif>" />
</form>
</cfoutput>
<cfif structkeyexists(form,"send")>
<cfdump var="#form#">
</cfif>
Sollte selbst ohne CF Kenntnisse in PHP umschreibbar sein.

Ich habe es lokal getestet. In feld1 eine 1 und feld2 eine 2, dann auf senden und mit der Wev Developer Toolbar mittels "Formulardateils einblenden" die Werte der nun versteckten Felder auf 5 und 6 geändert und erneut gesendet. Der Dump liefert 5 und 6. Also funzt! Aber für was soll das gut sein ?
 
Ja ist ja eben nicht gut :D! Ich dachte mir das schon aber dann kann ich das Formular nicht in 2 Schritten abschicken. Erst validieren und dann abschicken ;)!

LG,
Max
 
Dann übernehm die Felder aus Step1 als hidden in Step2 und lass sie dort nach dem Absenden validieren. Wenn alles okay ist, werden die Daten verschickt oder in eine DB geschrieben oder was auch immer damit passieren soll, andernfalls gibst du nur die Felder aus, die nich korrekt ausgefüllt sind. Die soll der User dann eben nochmal bearbeiten und erneut senden. Dürfte auch kein Hexenwerk sein.
 
Hi,
yep das ist natürlich das Korrekte. Wenn ich aber die Felder in die DB schreiben könnte nachdem sie durch das "validation script" gejagt werden hätte ich das Problem nicht :D! Ich verwende ein CMS (ExpressionEngine) und finde dort nicht das Script, welches den Datenbankeintrag vornimmt. Da dachte ich mir ich mache es in zwei Schritten..

LG,
Max
 
Du kannst dich niemals auf die Daten verlassen, die von einem Client kommen, auch (und schon gar) nicht aus den hidden Feldern. Wenn jemand deine Seite kaputt machen will, schaut er sich zu erst die hidden Teile an.
 
Hi,
ich hab gerade keine Zeit das auszuprobieren aber vielleicht könnt ihr mir weiterhelfen. Ist folgendes möglich:
Das ist nicht sinnvoll oder sicher.
Daher folgender Ablauf
  • Eingabe der Daten
  • Überprüfung via JavaScript (reines Schmankerl für den Client, keine Sicherheitsrelevanz)
  • Validierung auf dem Server
  • Weiterverarbeitung der Daten auf dem Server