Register Globals
Kita akan lihat salah satu contoh dari kesalahan scripting ketika status register global di set ON.
[php]
// define $otorisasi = true jika otentifikasi dari user telah valid
if (authenticated_user()) {
$otorisasi = true;
}
[/php]
/* Karena pada sebelumnya kita tidak menginisialisasikan $otorisasi = false, maka otorisasi tersebut akan dilakukan melalui register global
misalnya dari GET auth.php?otorisasi=1
maka semua orang akan dianggap telah memiliki ototentifikasi yang valid (1 = true) */
if ($otorisasi) {
include "admin/data.php";
}
?>
Jika register global = OFF, maka $otorisasi tidak akan dapat di set melalui request, dan script tersebut pun akan aman2 saja.
Contoh lain adalah pada penggunaan session. Register global = ON, maka kita dapat menggunakan variabel $username (contohnya) sebagai dasar dalam memulai session. tapi sekali lagi, apakah kita dapat mengetahui darimana nilai dari variabel tersebut dikirimkan?
Contoh session, tanpa memperdulikan status register global (ON atau OFF).
[php]
if (isset($_SESSION['username'])) {
echo "hallo {$_SESSION['username']";
} else {
echo "Halo, anda belum login. silahkan login terlebih dahulu";
}
?>
[/php]
Anda dapat menggunakan script berikut untuk mengetahui status register globals pada website anda:
[php]
$reglob = ini_get('register_globals');
if($reglob == 1){
echo "register_globals ON";
} else {
echo "register_globals OFF";
}
?>
[/php]
Jika register_globals di set ON, maka akan muncul tulisan “register_globals ON”, dan sebaliknya.
Anda dapat mengubah nilai register_globals pada account Anda dengan menambahkan baris berikut pada file .htaccess.
[code]
php_flag register_globals on
[/code]

Like