Andreas Korthaus: Behandlung nicht erwarteter Argumente

Beitrag lesen

Hallo!

Mein Gedanke hierbei ist, dass wenn ich diese Werte nicht filter,
sie dann in meinem Skript rumlungern. Wenn ich aber sowas wie einen
Filter einbaue, ich dabei eine riesen Liste pflegen muss, da die
Funktion ja global genutzt wird.

Die Frage ist, was mit den unerwarteten Parametern (oder wie auch immer Cheatah das nennt...) passiert. Z.B. kommt auch heute noch der größte Teil der aktuellen Sicherheitslücken in PHP-Anwendungen dadurch, dass solche unerwarteten Parameter automatisch als PHP-Variablen initialisiert werden - solange register_globals verwendet wird (obwohl da schon wirklich viele Jahrer lang von abgeraten wird). Es ist immer dasselbe - es werden absichtlich globale Variablen, die nicht im Script initalisiert worden sind unerwarted auf diesem Weg übergeben.

Wenn man aber register_globals abschaltet, und nur noch über die superglobalen Arrays ($_GET, $_POST...) auf die übertragenen Daten zugreift, muss man sich keine Sorgen machen - oder zumindest deutlich weniger (siehe "register_globals is not evil" unten).

Siehe auch:
PHP-Manual -> Sicherheit -> Verwendung von Register Globals
Stefan Esser: register_globals is not evil
Talk (Stefan Esser): "Grundlagen der sicheren PHP Programmierung - Teil 1" (pdf, 131kb)

Grüße
Andreas

--
SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/