sto su u biti registered globals, kako ih iskljuciti, kako provjeriti jesu li iskljuceni?
registered globals
Zaključano
Zakačeno
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
umjesto
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.
[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;
?>
<?php
$moj_id = $id;
?>
umjesto
Code:
$moj_id = $_GET['id'];
$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.
a mozes mi objasniti zasto predstavljaju security problem?
Zato sto preko urla mozes da setujes varijablu.
Npr imas neki code i sada dolazis u petlje koja provjerava autorizaciju:
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.
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");
}
?>
<?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.
Potpis
tu nema kašike....
Dobro, nije bas tako jednostavno, ali za pocetak ok :-)
Potpis
Goran Pilipović fka bluesman
hvala, sad sam skuzio