Förlita dig inte på register_globals

Om man programmerat PHP ett tag har man säkerligen stött på register.globals tidigare. Denna inställning i PHP:s konfigurationsfil php.ini gör att all data som skickas via GET, POST, cookies och sessions automagiskt registreras som variabler. Om man t.ex. skriver in ”script.php?id=5” i adressfältet när man kör ett skript kommer det automatiskt skapas en variabel $id med värdet 5. Detta må vara praktiskt i många fall, men det leder allt för ofta till säkerhethål i skripten.

Hur gör man istället då? Jo, sedan version 4.1.o finns det i PHP ett antal arrayer som man har tillgång till överallt i sin PHP-kod. Dessa är de s.k. superglobala arrayerna och de heter $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_REQUEST och $_SESSION.  Istället för att förlita sig på att det finns en variabel $id helt automatiskt, får man åtkomst till id genom $_GET[’id’].

Comments are closed.