On Thu, Jun 26, 2003 at 02:23:00PM +0200, Dieter Kroemer wrote:
[ register_globals = on ] Welche Sicherheitsrisiken bekomme ich denn damit?
In der Vergangenheit haben Leute immer wieder PHP-Scripte geschrieben, bei denen Zustand des Programmes in globalen Variablen gehalten wurde. if ($username == "kris" and $password == "geheim") $valid = 1; if ($valid) perform_magic_function(); Da PHP zugleich alle REQUEST-Parameter automatisch in globale Variablen umgewandelt hat, konnte man auf diese Weise viele PHP-Scripte austricksen. http://www.example.com/defektscript?valid=1 Mit register_globals = off werden Scriptparameter nicht mehr zu globalen Variablen, sondern landen in einem eigenen Namensraum ($_REQUEST ist bevorzugt zu benutzen). if ($_REQUEST["username"] == "kris" and $_REQUEST["password"] = "geheim") $valid = 1; if ($valid) perform_magic_function(); Auf diese Weise funktionieren solche Exploits ab Werk nicht mehr. Kristian