Globális változók használata

Default book

A korai (php 4.2.0 előtt) php változatokban a GET, POST metódussal beküldött paraméterek automatikusan globális változókká váltak a szerver oldali php szkriptekben. Ez helytelen használat esetén lehetőséget biztosított a támadóknak, hogy olyan értékű változókat hozzanak létre a szerver oldali scriptekben, amelyek módosítják a rendszer viselkedését. Helyes használat esetén azonban ez a beállítás sem okoz problémát. Mivel a PHP-val nagyon sokan gyorsan éles kódot írnak, ezért célszerűbbnek vélték a Fejlesztők default módon megtiltani a használatukat és csak a GET és POST tömbváltozókon keresztül lehet ekkor globális változókat átvenni.

A paraméter ki- és bekapcsolását a php.ini-ben a

register_globals = on / off kapcsolja.

A klienstől kapott globális paraméterek globális változóként való használatának helyes módja:

<?php
if( !isset($_GET['parameter']) )
  $parameter = '';
else
   $parameter = $_GET['parameter'];
......

$b = '';
print $b;
?>

A fenti konvenció azt tartja szem előtt, hogy akár paraméterként átadott globális értékek, akár a scriptben magában deklarált és felhasznált globális értékek esetén kötelezően értéket kell adni egy változónak, mielőtt a változó értékét felhasználnánk kiíró, vagy bármiféle egyéb utasításban.

Tags