Mailinglist Archive: opensuse-de (5499 mails)

< Previous Next >
Re: Apache 1.3.28 / PHP 4.3.3: URL-Variablen funktionieren nicht
  • From: Christian Boltz <cb.suse@xxxxxxxxxxxxxxxxxx>
  • Date: Fri, 2 Jan 2004 00:10:28 +0100
  • Message-id: <200401012300.44449@xxxxxxxxxxxxxxx>
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]


< Previous Next >
This Thread
  • No further messages