Register Globals nedir ve nasıl açılır?

Kategori: (Web Programlama) Yazan: admin, 21-09-2008

Etiketler : ,

Register globals php4.2.0 ve üstü sürümlerde kapalı, degeri off olarak gelir. Register globalsin açık ve programlama hatası olması durumunda uygulamalarınızda ciddi açıklar bulunmasına neden olur. Kısaca söylemek gerekirse register globalsin açık yani on olması durumunda uygulamanızda değişkenleri alırken $_GET ya da $_POST kullanmanıza gerek yoktur. Ee güzel bunu kullanmasak daha iyi olur, fazla kod yazmaktan kurtulmuş oluruz denebilir fakat eğer uygulamanıza güveniyorsanız bunu diyebilirsiniz. Ama küçük kod hatalarından dolayı size büyük kayıplar verdirebilir. Peki nasıl olacak?

<?php
if(fonsiyonumuz()){
$degiskenimiz = true;
}

if($degiskenimiz){
include(“adminsayfamiz.php”);
}
?>

Örnek de olduğu gibi basit bir kod yazdığımızı varsayalım. Ziyaretçi sayfa.php?degiskenimiz=1 sayfa.php?degiskenimiz=2 gibi herhangi birşey yazdığında bizim admin sayfamıza erişmiş olacaktır. Eğer register globals off olsaydı bu durum böyle olmazdı.

Peki register globals’in sunucumuzda açık mı yoksa kapalı mı olduğunu nasıl anlarız ? Bunun için sunucu apache bilgilerine bakılabilir, php.ini okunabilir ama en kolay ve hızlı yolu bir dosya oluşturup içerisine;

<?php
phpinfo();
?>

yazıp sunucunuza atıp çalıştırdığınızda sizin sunucunuz hakkında detaylı bilgiler verir. Ctrl+F’e basıp register yazıp aradığınızda register globals degerini görürsünüz (Muhtelemen off’dur).

Register globalsi on durumu getirmek için 2 kolay yol bulunmaktadır. Bunun için .htaccess dosyanıza;

php_flag register_globals on

yazarsınız ya da sayfanızın başına;

foreach($_POST AS $key => $value) {
${$key} = $value;
}
foreach($_GET AS $key => $value) {
${$key} = $value;
}

Eklerseniz açmış olursunuz.

Sonuç olarak; her ne kadar bizi fazla kod yazmaktan kurtarsa da gözden kaçabilecek uygulama hatalarından dolayı güvenlik açıkları meydana getirebilir. O yüzden kapalı kalması herkes için en faydalısı olacaktır.

Yorum Yazın

20 + 2 = ? (İşleminin Sonucu)