Když potřebujeme register_globals


Honza Javorek

Upozornění! Tento článek vyšel před více než 2 lety. Můžete si jej přečíst v rámci zkoumání minulosti, ale přepokládejte, že dnes se Honza již nemusí s obsahem ztotožňovat.

Stalo se tuším od jedné z podverzí PHP4 dobrým zvykem vypínat v PHP direktivu register_globals. Naštěstí. Díky tomu pak nemáme přístup k příchozím datům přes různě pojmenované proměnné, ale máme je hezky v globálních polích, třízena podle způsobu, jakým k nám přišla. To je nejen o dost přehlednější, ale také bezpečnější.

Co ale dělat, když máme nějaký starý projekt napsaný se zapnutými register_globals? Určitě je jednodušší je zapnout a případně si pohlídat bezpečnostní rizika, než přepisovat celý kód. Máme tři možnosti:

Apache#

Serveru řekneme co potřebujeme v souboru .htaccess.

php_flag register_globals 1

Změna nastavení přímo v PHP#

Použijeme ini_set.

ini_set('register_globals','on');

Nastavení na serveru nelze změnit#

V tomto případě nám nezbyde, než si ručně proměnné vytvořit.

extract($_REQUEST);

Honza Javorek

Honza je programátor. Od roku 2011 buduje českou komunitu kolem jazyka Python. V současnosti pomáhá hlavně s propagací aktivit, jako jsou PyLadies, Pyvo, nebo PyCon CZ. Přes den jej najdete v Apiary, kde se stará o Dredd, framework na testování API. Sem tam ho můžete potkat, jak přednáší na srazu nebo na konferenci.




Komentáře