webForumDet fria alternativet

Register global?

1 svar · 189 visningar · startad av Picklezz

PicklezzMedlem sedan jan. 2002414 inlägg
#1

Vad finns det för säkerhetsrisker med att använda sig av Register global?

Finns det några fördelar med att ha den på On?

SPiNMedlem sedan mars 20007 896 inlägg
#2

Säkerhetsrisker finns om besökarna vet namnet på dina variabler, utan att du koller dem. T.ex. följande två sidor:

<?php
session_start ();

$username = "SPiN";
session_register ( "username" );

header ( "Location: sida2.php" );
<?php
session_start ();

if ( $username != "" ) {
     echo "Välkommen att läsa den här superduper-hemliga informationen, eftersom att du är inloggad!";
}
else {
     exit;
}
?>

Vad händer nu om någon går in på sida2.php med följande adress?
http://server.se/sida2.php?username=MrHacker

Självklart får den personen tillgång till den superduper-hemliga informationen, eftersom att variabeln blir satt. Scriptet kollar ju inte om det är från en session eller från adressfältet. Har du däremot register_globals satt till off, så måste du kontrollera variabeln $username så här:

<?php
session_start ();

if ( $_SESSION[ 'username' ] != "" ) {
     echo "Information";
}
elseif ( $_GET[ 'usernameä ] != "" ) {
     echo "Försök inte lura mig, MrHacker!";
}
else {
     exit;
}
?>

Det handlar inte så mycket om att ha register_globals satt till on eller off, utan mer hur man programmererar. Men sätter man register_globals till off så är det ju ingen risk att man gör "fel". ;)

129 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)