Moin!
Das Abschalten von register_globals soll also lediglich verhindern dass du dir aus Unwissenheit in den Fuß schießt. Naja, und es macht einen etwas saubereren Eindruck.
Eine wirkliche Sicherheitsgefahr geht von register_globals = On bei nicht-hirntoter Programmierung jedenfalls nicht aus.
Naja, es verhindert effektiv, dass der Angreifer beliebige globale Variablen initialisieren kann. Also geht schon eine potentielle Gefahr von register_globals=on aus, die man ganz einfach umgehen kann - nur muß der Provider das eben auch tun. Wenn der aus Kompatibilitätsgründen das nicht abgeschaltet hat, bringt ein Zugriff auf $_POST & Co. leider nicht wirklich etwas.
Beispiele für hirntote Programmierung (aus der Kategorie "Bitte nicht nachmachen"):
...gibts genug in real existierendem Code. Und das sind nicht zwingend immer nur Schnell-Produkte hirntoter Programmierer, sondern eben leider auch Software, die gerne und weit verbreitet eingesetzt wird. Ohne Gewähr auf Richtigkeit: Irgendwelche Versionen von PHP-Boards oder PHP-Nukes hatten solche Programmlücken auch eingebaut, mit denen der Angreifer dann Code von externen Servern einbinden konnte.
Im Prinzip hast du aber natürlich Recht: Da nicht ausgeschlossen werden kann, dass der PHP-Code nicht auch auf Servern mit register_globals=on ausgeführt werden könnte, sollte man sich schon der Gefahr bewußt sein und entsprechend programmieren.
- Sven Rautenberg
Signatur oder nicht Signatur - das ist hier die Frage!