PHP - register_globals

Tzv. register_globals je dnes již zastaralý a nebezpečný způsob práce s proměnnými, získávanými z POST, GET nebo z COOKIES. Na našem webhostingu jsou register_globals zakázané, a nelze je tedy používat.

Datum: 22.12.2010


Pokud jsou register_globals zapnuté, znamená to, že data v proměnných pocházejících z URL adresy (GET), z odeslaného formuláře (POST) nebo z cookies (COOKIE) se automaticky objeví jako globální proměnné ve vašem PHP skriptu.

Např. voláme-li náš skript takto: skript.php?jmeno=Karel&cislo=12345 a register_globals jsou zapnuté, máme tyto 2 hodnoty přístupné přes globální proměnné $jmeno a $cislo.

echo "Vaše jméno: $jmeno<br />"
echo "Vaše číslo: $cislo"

Podobně to funguje při odeslání dat přes formulář metodou POST.

Zde je však schované velké nebezpečí - přidáním libovolného parametru do URL adresy vašeho skriptu může případný útočník do vašeho programu dostat libovolnou globální proměnnou s libovolnou hodnotou, což v aplikaci, která s tím nepočítá, může vyústit prolomení zabezpečení, způsobit škody apod.

Proto je používání register_globals v PHP již nedoporučované a v dalších verzích již tato možnost nebude vůbec existovat.

Správné řešení

Správně se má s daty z POST, GET a COOKIE pracovat pomocí superglobálních proměnných $_POST, $_GET a $_COOKIE.

  • $_POST je asociativní pole, obsahující data z odeslaného formuláře
  • $_GET je asociativní pole, obsahující parametry z URL adresy
  • $_COOKIE je asociativní pole, obsahující data, uložená v cookies prohlížeče

Opravený příklad:

echo "Vaše jméno: ".$_GET["jmeno"]."<br />";
echo "Vaše číslo: ".$_GET["cislo"];

Zapnutí register_globals

Pokud přesto nutně potřebujete používat register_globals, tj. vidět vstupní data z POST, GET a COOKIES jako globální proměnné ve své aplikaci, použijte funkci import_request_variables(), která data načte a globální proměnné vytvoří.

Související odkazy

Diskuze k článku

K tomuto článku nebyl dosud vložen žádný diskuzní příspěvek, ale můžete tak učinit jako první.

Přihlášení zákazníka

Nemáte ještě zákaznický účet? Registrace

Copyright © WEDOS, 2012

Facebook RSS