Hallo,
HTML bringt ja schon so einige Nachteile mit, z.B. keine Sonderzeichen (<>") in Eingabefeldern oder in anderen HTML-Elementen - klar, muss man halt ersetzen.
Wie bitte? Was spricht gegen > für >, < für < und " für "? Damit kann man diese Zeichen doch ganz normal verwenden. Wo ist das Problem?
Ein SEHR großes Problem dass mir die Tage aufgefallen ist, ist die Firebug-Extension des Firefox, mit dem man lustig die ganze Seite umbauen kann. D.h. der User kann hidden-Fields löschen die man eigentlich für die Steuerung der Seite bräuchte, den Namen/Value des Submit-Buttons ändern, letzendlich das ganze Ding kaputt machen, und mein PHP/DB-Backend mit Schrott zu müllen.
Wenn jemand anfängt an deinem Formular rumzubasteln, dann muss derjenige eben damit rechnen, dass die Seite nicht mehr die gewünschte Funktion erfüllt.
Nun frage ich mich, wie kann ich mich gegen sowas schützen. Ich könnte die POST/GET Rückgaben validieren, ob das Formular so angekommen ist, wie es sein soll ... ooops, aber was ist wenn der Firebug-User nun auch noch das target und die method des forms geändert hat ... naja ... ihr seht, so unbedenklich ist das nicht.
Die Rückgabedaten musst du sowieso validieren. Wenn du das nicht bereits tust, dann solltest du das schleunigst ändern. Informiere dich mal über XSS. Sobald irgendwas an den GET/POST-Daten falsch ist, bekommt der Benutzer eine Fehlerseite vorgesetzt. Damit wäre das Problem mit den Firebug-Usern bereits gelöst. Und sowieso ist Firebug ja nicht die einzige Möglichkeit deiner Seite vollzumüllen. Man kann sich problemlos Programme schreiben die sinnlose POST-Requests an deine Seite schicken. Schon rein wegen denen musst du alle einkommenden Daten validieren.
Die Lösung?
Ein Standard-HTML-Formular und ein PHP-Backend, das sämtliche vom Benutzer manipulierbare Daten erstmal gründlich validiert.
Gruss,
OhneName