PHP i register_globals

Jacek Konieczny jajcus w pld.org.pl
Sob, 27 Lip 2002, 18:01:01 CEST


On Sat, Jul 27, 2002 at 01:34:24PM +0200, Blues wrote:
> On Sat, 27 Jul 2002, Jacek Konieczny wrote:
> > Właśnie zrobiłem upgrade PHP. Wcześniej uprzedziłem Łebmajstra, ze od
> > wersji 4.2.0 zmienne z URLa nie będą widoczne jako globalne zmienne
> > sktryptu (wcześniejsze zachowanie PHP było conajmniej chore). W końcu 
> > to najważniejsze zmiany w PHP które zaczęły się od wersji 4.1.0.
> > I wielkie było moje zdziwienie, jak w /etc/php/php.ini.rpmnew znalazłem
> > "register_globals = On". Przecież to niweluje te poważne zmiany 
> > w bezpieczeństwie PHP. Czyja to sprawka?
> > A jeżeli coś mi się miesza, to sorry. Ja tu tylko instaluje...
> 
> Nic ci się nie miesza - tak ma być, ponieważ ogromna ilość site-ów by po 
> prostu padła, jako nieprzygotowane go nowych zmiennych.
Ale po to było to przejście opóźnione w releasach PHP. Żeby wszyscy
mieli szansę przejść. W 4.1.x było to domyślnie wyłączone w 4.2.x
domyślnie włączone (podobno).
No i jak ktoś robi upgrade, to zostaje mu stary konfig (gdzie było
register_globals = On). Jak ktoś instaluje od zera _powinien_mieć_
to wyłączone. 

> Jeżeli u siebie to wyłączysz - dobra twoja, będziesz przygotowany do 
> nowych php, które prawdopodobnie pozbędą się tej możliwośći niedługo 
> (pewnie przy 4.3.0 - tak się mówi na listach php-owych)
Ale w domyślnym konfigu w pakiecie już powinno być to zmienione (jeśli
jest zmienione domyślne zachowanie PHP.

Stare zachowanie było bardzo niebezpieczne. Ale w tym wypadku jeśli
autor skryptów to przewidział, to mógł zrobić bezpieczną stronę.
Jednak autorzy nowych skryptów mogą zakładać, że 
"register_globals = Off" (skoro takie jest domyślne ustawienie w PHP
4.2.x). A strona napisana z takimi założeniami, uruchomiona w środowisku
gdzie "register_globals = On" najprawdopodobniej okaże się jedną wielką
dziurą.

IMHO największy błąd jest w tym że mamy php.ini w osobnym Source, 
zamiast patchować oryginalnego php.ini. Zastanawiam się ile jeszcze
ustawień mam nie tak jak trzeba...

Pozdrowienia,
        Jacek 



Więcej informacji o liście dyskusyjnej pld-devel-pl