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?
1 svar · 189 visningar · startad av Picklezz
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?
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". ;)