Register Global On dan Off

Register Global On dan Off

Ada pertanyaan menarik dari milis PHP yang sering saya ikuti. Hal ini sering sekali ditanyakan, dan banyak juga yang malas menjawab, karena terlalu seringnya masalah ini dibahas dan ditanyakan.

Fren, saya org yg sedang belajar utk menjadi programmer PHP, tapi script login.php saya tidak pernah mau konek ke database saat saya masukkan username dan password. Saya menggunakan PHP versi 4.3.6, Apache versi 2.0.49, phpmyadmin versi 2.6.0, MySQL.

Kebetulan, hari Minggu kemarin jalan-jalan sebentar ke Gramedia. Sambil melihat-lihat perkembangan buku-buku lokal. Saat awal-awal dibangku kuliah dulu, minimal selama dua bulan saya membeli satu buku komputer. Uangnya dari honor sebagai Asisten Lab, dan terkadang meminta tambahan dari orang tua :D. Sejak saya lebih dalam mengenal internet, mencari tutorial, pembahasan, dan contoh-contoh aplikasi, minat beli terhadap buku komputer menurun drastis. Ditambah lagi, buku-buku yang ada hanya menyajikan hal yang melulu. Tak ada pembahasan yang lebih menarik, dan lebih mendalam.

Kembali kepada pertanyaan diatas, masalah yang ada hanya berkutat pada Register Global. Rata-rata buku PHP yang beredar ditanah air, menerapkan Register Global yang bernilai On. Padahal hal ini sudah dianjurkan dan secara default dimatikan sejak PHP versi 4.2.0. Sebenarnya, apa perbedaan dari nilai On dan Off? Akan saya bahas disini.

Register global diset lewat file php.ini. Untuk pemakai Windows, file tersebut berada pada direktori Windows anda. Pemakai linux, biasanya pada direktori /usr/lib/php. Apa yang terjadi jika register global bernilai On? bahaya. Karena pada setting ini, semua variabel yang dikirim melalu metode post, get, juga variabel session dan cookie dianggap sama. Sebagai contoh:

if(isset($submit)) {
echo $tes;
}
?>


Register Global





/>





Jika file tersebut kita simpan dengan nama tes.php, pada register global yang bernilai On, bisa dijalankan dengan cara seperti ini: http://localhost/tes.php.
Seolah, tak ada yang aneh dengan program diatas. Tapi tunggu dulu, bagaimana kalau kita menjalankan program diatas dengan URL berikut: http://localhost/tes.php?submit=1&tes=nahlho. Seolah, form yang kita buat tak berarti sama sekali. Ingat, ini baru sebuah file test, bagaimana jika hal ini terjadi pada sebuah aplikasi web yang sangat peka terhadap keamanan? oh, tak tahulah saya.

Sekarang, bagaimana merubah skrip diatas, agar bisa dijalankan dengan register global yang bernilai off? simpel saja. Lihat skrip dibawah ini:

if(isset($_POST['submit'])) {
echo $_POST['tes'];
}
?>


Register Global





/>





Sekilas, jadi terlihat sulit, karena harus menambahkan “sesuatu” lagi. Tapi tak apa, inilah awal belajar PHP, memperhatikan keamanan skrip yang kita buat. Jika register global bernilai Off, maka, semua variabel yang datang, disikapi dari mana ia datang. Kebetulan, dalam skrip diatas, kita menggunakan form yang metodenya post, maka variabel yang diterima haruslah $_POST['nama_variabel']. Jika variabel itu berasal dari alamat URL, maka variabel itu haruslah seperti $_GET['nama_variabel'].

Penulis : Administrator ~ Sebuah blog yang menyediakan berbagai macam informasi

Artikel Register Global On dan Off ini dipublish oleh Administrator pada hari Rabu, 14 Maret 2012. Semoga artikel ini dapat bermanfaat.Terimakasih atas kunjungan Anda silahkan tinggalkan komentar.sudah ada 0 komentar: di postingan Register Global On dan Off
 

0 komentar:

Posting Komentar