Hallo,
Ich schicke Inhalte mittels eines FormDatas vom Client an den Server; - diese landen dann ja in der globalen $_POST Variable.
Bevor ich deren Inhalt nun sanitize, muss ich irgendwie vorher überprüfen, ob der Client Input überhaupt valide ist?
was bezeichnest du in diesem Fall als valide?
// DUMMYCODE if (gettype($_POST) !== string && gettype($_POST) !== formData /* ok, zweiter Teil funktioniert so natürlich nicht, nur exemplarisch veranschaulicht... */)
PHP selbst garantiert dir, dass $_POST immer vom Typ Array ist, und dessen einzelne Elemente vom Typ String. Und wenn die POST-Daten in der für Formulare üblichen Notation key1=value1&key2=value2 ankommen, hast du diese Key/Value-Pärchen nachher sauber im $_POST-Array. Was willst du da also weiter überprüfen?
Wie überprüfe ich, ob der $_POST Variable überhaupt korrekte Werte aus einer korrekten Herkunft (formData) übergeben werden?
Die Herkunft kannst du nicht überprüfen. Du kannst und solltest nur überprüfen,
- ob $_POST die Keys enthält, die du erwartest
- und ob deren Werte "gültig sind", also deinen Erwartungen entsprechen.
- Optional: Prüfen, ob es weitere Nonsense-Keys gibt, die gar nicht ins Konzept passen. Normalerweise würde man die einfach ignorieren, man könnte aber auch den ganzen Request abweisen.
Einen schönen Tag noch
Martin
Ich fürchte, ich brauche ein neues Portemonnaie. Das alte ist leer.