[ shockre @ 20.05.2004. 15:08 ] @
sto su u biti registered globals, kako ih iskljuciti, kako provjeriti jesu li iskljuceni?
[ maxy` @ 20.05.2004. 16:11 ] @
u manualu pise slijedeca informacija:
[quote
Tells whether or not to register the EGPCS (Environment, GET, POST, Cookie, Server) variables as global variables
[/quote]

ukratko, ako su register_globals upaljeni onda _ENV, _GET, _POST, i _COOKIE varijablama pristupas ovako

Code:

<?php

$moj_id = $id;
?>


umjesto

Code:

$moj_id = $_GET['id'];


dakle, sve varijable pretvori u gornje navedeni format (najjednostavnije receno).
no, register globals predstavljaju security problem stoga ih je bolje drzati na off.

kako ih ugasiti?
u php.ini nadji register_globals te umjesto "on" napisi "off" (bez navodnika) ili u .htaccess fileu dodaj:
php_flag register_globals off

ne mozes ih gasiti/paliti sa ini_set() funkcijom.

kako pogledat dal su ukljuceni? ili pogledas u php ini ili opicis <?php echo phpinfo(); ?> pa gledas.
[ shockre @ 20.05.2004. 19:14 ] @
a mozes mi objasniti zasto predstavljaju security problem?
[ dr ZiDoo @ 20.05.2004. 21:57 ] @
Zato sto preko urla mozes da setujes varijablu.
Npr imas neki code i sada dolazis u petlje koja provjerava autorizaciju:

Code:

<?php
if($auth == 1)
{
    echo("Povjerljivi sadrzaj");
}
else
{
    echo("Nemas prava pristpua");
}
?>


Pokreni code ovako: http://adresa.com/put/do/skripte/fajl.php?auth=1 i proce ti autorizacija.
Ovakve stvari se naravno mogu u codu izbjeci (npr. restetovanje varijable na pocetku skripte) ali bolje je da register_globals ugasis jel onda imas 100% kontrolu na vrednostima u codeu.
[ bluesman @ 21.05.2004. 01:53 ] @
Dobro, nije bas tako jednostavno, ali za pocetak ok :-)
[ shockre @ 21.05.2004. 12:48 ] @
hvala, sad sam skuzio