Die Personenverwaltung, Ändern von Personendaten:
- In der DB sind 3 Angestellte, A, B und C, mit Pers_ID 1, 2, 3.
- User öffnet Person B (Pers_ID = 2)
- User "hacked" HTML Code und setzt Pers_ID (hidden-field) von 2 auf 3
- submit -> falscher Datensatz wird geändert
Lösung: Vergleich von geladenem und empfangenem Datensatz - ja, kein Problem bei einem STATISCHEN hidden-field, und einem Datensatz.
Lösung: Überprüfen, ob der User den Datensatz mit der Id "3" überhaupt verändern darf.
Ich bleib dabei, das ist eine maßive Schwachstelle von HTML, das der USER das Programmverhalten beeinträchtigen kann.
Du scheinst nicht zu begreifen, dass es vollkommen egal ist, ob der User mittels Firebug oder einer sonstigen Technik Dein Formular ändern kann. Er kann es einfach nach eigenem Gusto nachbauen. Hat er bei Dir eine gültige Session, wird auch sein Formular von Deiner serverseitigen Technik angenommen.
Das bedeutet jedenfalls einen ERHEBLICHEN Mehraufwand beim Erstellen von Web-Applikationen, und ich glaube nicht dass das jeder Hersteller berücksichtigt hat.
Ja und Ja. Validierung von Formulardaten ist ein MUSS und wird viel zu oft vernachlässigt. Wenn Du komplexe Formulare baust, brauchst Du auch komplexe Überprüfung. Warum verwendest Du nicht ein entsprechendes Framework oder fertige Klassen? Schau doch mal bei PEAR nach.
Also, kennt jemand eine Alternative zum HTML-Forms, neben XForms und Flash?
PDF-Formulare. Achtung: Das war ein Scherz! Und ändert nichts an Deiner Grundproblematik. Denn auch in diesem Fall kann jemand sein eigenes HTML-Formular (jaja) bauen, die Inputs mit den selben Feldnamen versehen und an Deinen Server schicken.
Gruß, David