Rumahweb Journal

Register Globals

Kontroversi yang paling menarik pada PHP adalah dalam penggunaan register global. Apakah akan di set ON atau OFF. Kali ini kita akan melihat contoh kesalahan script yang dapat ditembus apabila Register Global di set ON.

Ketika ON, maka register_globals akan memasukkan variabel ke script yang telah dibuat (seperti pada permintaan melalui form html). Hal ini sesuai dengan fakta bahawa PHP tidak membutuhkan inisialisasi dari variable, dan itu berarti akan sangat mudah bagi kita untuk menulis koding yang tidak terjamin keamanannya. komunitas PHP memutuskan untuk mengeset nilai default register global menjadi OFF. Terkadang, jika di set on, maka orang2 akan terbiasa menggunakan variabel2 yang bahkan mereka sendiri tidak tahu darimana variabel tersebut datang.
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;
}

/* 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”;
}
?>

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”;
}
?>
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]

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Promo Hosting Murah Rumahweb

Rumahweb