Sven Rautenberg: Über Array Indiz assoziative "Ansprechweise" erhalten?

Beitrag lesen

Moin!

Mein Ziel ist es, in einem assoziativen Array (genauer genommen $_GET und $_POST) alle enthaltenen Elemente dynamisch anzusprechen und prüfen zu können (regüläre Ausdrücke).

Schon mal foreach angeschaut?

Sinn des ganzen:

  • Globale Überprüfung von GET Parametern

Wobei ich mich frage, wann das notwendig sein sollte. Eine Applikation sollte genau wissen, welche Parameter sie erwartet, und alle anderen Parameter ignorieren. Die erwarteten Parameter haben dann die definierten Formate zu haben, was man natürlich prüfen und sicherstellen muß, ansonsten ist es ein Fehler, der zu behandeln wäre.

  • Grundsätzlich Prüfung aller GET Parameter auf z.b. 0-9, aber eben ohne diese manuell angeben zu müssen (so kann es nicht vorkommen, das man etwas vergisst!)

Wenn du global arbeitest und nichts vergißt, handelst du dir aber mitunter viel ärgere Probleme ein.

  • Definierung von Ausnahmen für bestimmte GET Parameter wie z.B. $_GET[suchbegriff]

=> Vermeidung von SQL Injection

SQL-Injection vermeidest du nicht dadurch, dass du in $_GET global nachguckst, ob da nur Zahlen drinstehen, sondern indem du Benutzerdaten passend durch die zugehörige Escapingfunktion schickst. mysql_real_escape_string() wäre da der Klassiker. Ansonsten steckt nämlich die Injection dann in deinen Ausnahmen wie $_GET['suchbegriff'] drin.

Insgesamt ist bei PHP natürlich ohnehin die Behandlung der Eingabedaten zu berücksichtigen, also z.B. die Einstellung von magic_quotes_gpc und magic_quotes_runtime. Das wurde aber schon in vielen Postings hier behandelt. Mitlesen bildet!

- Sven Rautenberg

--
"Love your nation - respect the others."