Hallo Ratti, hallo Leute, Am Montag, 29. Dezember 2003 21:47 schrieb Ratti:
Am Mo, den 29.12.2003 schrieb Marco Sievert um 12:22:
Ihr (du und Jörg) habt Recht, ich sollte mal alle meine Skripte umschreiben.
Oooh, bitte CC an meine Exfreundin: Ich hatte in irgendwas Recht! :-)))
*LoL*
[...] Wag es nicht! :-)
Ergänzung: Das mit dem "Umschreiben" ist halb so schlimm. Für alte Sachen bzw. fremde Scripte gibt es die Möglichkeit, über ".htaccess"-Files in ganz bestimmten Ordnern ganz gezielt RegisterGlobals wieder zu aktivieren.
Unschön, aber manchmal nötig.
Eine Möglichkeit ist, das Auslesen der übergebenen Parameter mit einer eigenen Routine durchzuführen, die man in allen Projekten einfach included und die beide Methoden beherrscht, alt wie neu. In
Du meinst diesen bösen php_varfix?
In diesem Fall ist man allerdings wieder dafür verantwortlich, eben jene Sicherheitslücken selbst abzufangen, die durch das abschalten der Globals beseitigt wurden.
Eben, und das kann nervig werden. Die bessere Lösung ist, register_globals nachträglich rauszukicken, wenn es der Provider nicht schon macht: $arr = array_merge(&$_ENV,&$_GET,&$_POST,&$_COOKIE,&$_SESSION); while(list($key) = each($arr)) unset(${$key}); (Quelle: User-Kommentare zu security.registerglobals.php auf php.net) Dadurch sind sämtliche globale Variablen weg, auch wenn register_globals noch an ist. Danach kann man sich die Werte sauber aus $_GET usw. holen. Alternativ kann man auch per .htaccess register_globals auf seinem Webspace deaktivieren: php_flag register_globals off oder php_value register_globals 0 - funktioniert allerding nur, wenn AllowOverride Options gesetzt ist (ebenfalls den sehr nützlichen User-Kommentaren auf php.net entnommen) Sämtliche Codeschnipsel aus den Userkommentaren von php.net sind ungetestet, müssten aber funktionieren ;-)
Ich mache das immer dann so, wenn ich eine Site baue, die später bei einem Provider liegen wird, der RegisterGlobals noch auf On hat (Was derzeit eigentlich alle sind, die mir unterkommen)
Ja, leider. Ich war übrigens auch sehr (negativ) überrascht, als ich auf einem von mir betreuten Server register_globals deaktiviert hab und dann feststellte, dass Confixx ohne register_globals nicht läuft :-( Naja, jetzt ist es eben für dieses Verzeichnis wieder aktiviert, aber Confixx gefällt mir noch weniger als vorher... Gruß Christian Boltz -- PATH="${HOME}/Oktoberfest 2003:$PATH" configure '--prefix=Auf geht\'s' [Ralf Corsepius in suse-programming]