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.
 

Slashwalker

Winterbanana
Registriert
15.05.06
Beiträge
2.213
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 ?
 

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
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
 

Slashwalker

Winterbanana
Registriert
15.05.06
Beiträge
2.213
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.
 

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
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
 

Maluku

Finkenwerder Herbstprinz
Registriert
10.05.08
Beiträge
464
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.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
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