--=REKLAMA=--

Jak wyłączyć RG EMULATION?

Z Joomla!WikiPL

Wersja Zwiastun (dyskusja | edycje) z dnia 09:52, 16 kwi 2009

(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

Przegląd

Dyrektywa register_globals w PHP jest być może najsłynniejszym pomysłem. Z punktu widzenia bezpieczeństwa - złym pomysłem. Skłania ona autorów do niechlujnego pisania kodów i wystawia wiele skryptów na niepotrzebne ryzyko. Przyczyną jest bezpośrednie przekazywanie do skryptu zmiennych przychodzących od użytkownika, a to łamie podstawową zasadę - nigdy nie wierz poleceniom, danym ani informacjom przekazywanym od użytkownika.
Register Globals została oficialnie zaniechana w PHP5, i począwszy od PHP6 nie będzie więcej implementowana. To wspaniale!
Joomla! 1.0.x używa funkcji RG_Emulation, która jest w pewnym zakresie bezpieczniejsza niż standardowa register_globals, ale to nie zmienia postaci rzeczy: najlepszym rozwiązaniem jest rezygnacja z jakiejkolwiek formy automatycznego przyporządkowywania zmiennych. Zdarza się, że źle napisane rozszerzenia mogą nie działać przy wyłączonej register_globals. Jest to znak, że rozszerzenie nie sprawdza we właściwy sposób wywołań użytkownika. Najlepsza rada - nie używajcie takich rozszerzeń.

Joomla! 1.5

Emuluje register_globals=off. Zapobiega to możliwym do tej pory atakom na witryny Joomla!.

Joomla 1.0.15

W tej wersji zmiana dokonywana jest z poziomu panelu administracyjnego w konfiguracji.

Joomla! 1.0.13

Poczynając od wydania 1.0.13, funkcja Register Globals Emulation została przesunięta do głównego pliku konfiguracyjnego i może być włączana/wyłączana z panelu administratora.

Joomla! 1.0.12 i wcześniejsze

Wyedytuj plik globals.php, znajdujący się w głównym katalogu Joomla!. Gdzieś w okolicach linii nr 23 zmień:
define('RG_EMULATION',1)
na
define('RG_EMULATION',0)

Dziękujemy za wkład

» Stefan Wajda [zwiastun],