Seite 1 von 1

Update ab 2.0.9 und Auswirkungen auf manche Mods

Verfasst: 15.07.2004 13:17
von PhilippK
Hallo zusammen,

mit dem Update auf 2.0.9 hat sich eine kleine aber teilweise weitreichende Änderung am Code ergeben. Nach dem Update wird das Verhalten der PHP-Direktive register_globals = Off simuliert (bei einigen Providern ist diese Einstellung bereits standardmäßig so eingestellt). D.h., dass z.B. über ein Formular übergebene Variablen nicht automatisch erstellt werden und daher manuell abgerufen (und dabei idealerweise gleich geprüft) werden müssen (Details siehe unten).
Diese Entwicklung ist insofern zu begrüßen, da die standardmäßige Erstellung der übergebenen Variablen immer wieder zu Sicherheitslücken führte und damit diese potentielle Schwachstelle dauerhaft geschlossen wird.

Jedoch haben sich einige Mod-Entwickler in der Vergangenheit nicht an die Coding-Guidelines der phpBB Group gehalten und diese Variablen ungeprüft verwendet. Daher kann es sein, dass nach dem Update auf phpBB 2.0.9 einige Mods nicht mehr funktionieren (das gleiche Problem kann auftreten, wenn euer Provider die Einstellung ändert).

Um das Problem zu beseitigen, kontaktiert ihr am besten den Autor des Mods bzw. passt den Mod selbst an. Zwar würde eine Beseitigung des entsprechenden Codes das Problem temporär lösen - allerdings auch nur bis zu dem Zeitpunkt, wo euer Provider die entsprechende PHP-Einstellung ändert.

Gruß, Philipp

Noch ein paar Hintergrundinformationen:

In älteren PHP-Versionen wurden Daten, die z.B. über ein Formular übergeben wurden, automatisch in eine global verfügbare Variable gesetzt. Enthielt ein Formular ein Feld mit dem Namen "Nachname", so war der Wert dieses Feldes danach in der Variable $Nachname verfügbar. Wurde diese Variable im Code verwendet, ohne dass sie vorher überprüft wurde, so entstanden dadurch teilweise größere Sicherheitslücken.
Seit PHP 4.1.0 wird die Verwendung dieser globalen Variablen nicht mehr empfohlen und die automatische Erstellung dieser Variablen ist seit PHP 4.2.0 standardmäßig deaktiviert.
Damit auf die übergebenen Werte zurückgegriffen werden kann, stehen spezille Arrays zur Verfügung, die die übergebenen Werte beinhalten. So kann nun auf das Feld (je nach Situation) mit $HTTP_POST_VARS['Nachname'] zugegriffen werden. Neben dieser Variante gibt es noch eine neuere Kurzform mit $_POST['Nachname']. phpBB 2.0.x verwendet aus Kompatibilitätsgründen die erste Variante, phpBB 2.2.x wird die zweite Variante verwenden. Bei Neuentwicklungen sei grundsätzlich zur zweiten Variante geraten, da die alten Versionen seit PHP 5.0.0 deaktiviert werden können.

Siehe auch:
http://www.php.net/manual/de/language.v ... efined.php
http://www.php.net/release_4_1_0.php