Der Martin: Formulareingabe sicher machen

Beitrag lesen

Hallo,

Wie schütze ich mein Eingabeformular also auch bei deaktiviertem Javascript vor "falschen" Eingaben?

Indem PHP die ankommenden Eingabedaten prüft, die zwar im Friedensfall schon okay sein sollten, aber auch beliebig fehlerhaft. In dem Fall musst du dich entscheiden, ob du einfach wieder das Formular anzeigst (-> Affenformular), oder einfach eine Fehlerseite, oder etwas ganz anderes.

Wenn ich die Eingabe "auffange", dann schließe ich diese Sicherheitslücke?

vermutlich ja. Überlege dir, woher die "Unsicherheit" kommt. Normalerweise doch daher, dass das Programm bei falschen (d.h. unerwarteten) Eingabedaten etwas Unvorhergesehenes tut, was man nicht möchte.

z.B. gesetzt der Fall, es wären nur Ziffern zulässig:

Meist würde zur Bedingung "nur Ziffern" auch noch ein bestimmter Wertebereich gehören, vielleicht "nur positiv", oder "ganzzahlig von 0..100". Übrigens macht is_numeric() mehr als auf "nur Ziffern" zu prüfen: Die Funktion überprüft, ob der Parameter als Zahlenwert interpretiert werden kann. Da würden also auch Vorzeichen, Dezimalpunkte, Präfixe für Hex-Notation oder die wissenschaftliche Schreibweise (1.08E+06) akzeptiert. Mach dir also den Unterschied zwischen "nur Ziffern" und "nur Zahlenwerte" klar, und überlege, was in deinem Fall tatsächlich richtiger ist.

Ansonsten ist der Ansatz prinzipiell in Ordnung.

The ships hung in the sky in much the same way that bricks don't.

  • Douglas Adams, The Hitchhiker's Guide To The Galaxy

Oh, another hitchhiker! :-)
Das ist einer der Sätze, die IMO in der deutschen Übersetzung viel vom ursprünglichen Sprachwitz verloren haben.

So long,
 Martin

--
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy