1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Sicherheitsfrage

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von mschoening, 14.09.08.

  1. mschoening

    mschoening Gelbe Schleswiger Reinette

    Dabei seit:
    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.
     
  2. Slashwalker

    Slashwalker Winterbanana

    Dabei seit:
    15.05.06
    Beiträge:
    2.190
    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 ?
     
  3. mschoening

    mschoening Gelbe Schleswiger Reinette

    Dabei seit:
    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
     
  4. Slashwalker

    Slashwalker Winterbanana

    Dabei seit:
    15.05.06
    Beiträge:
    2.190
    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.
     
  5. mschoening

    mschoening Gelbe Schleswiger Reinette

    Dabei seit:
    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
     
  6. Maluku

    Maluku Finkenwerder Herbstprinz

    Dabei seit:
    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.
     
  7. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.251
    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
     

Diese Seite empfehlen