Global değişkenleri kapatmak

Kategori: Güvenlik, Php
Tarih: 27th Mayıs 2011

Php de global değişkenler açık ise; Post yada Get methoduyla gelen verileri hiç bir tanımlama yapmadan direk tanımlanmış bir değişkenmiş gibi kullanabilirsiniz.

Mesela a.php dosyasına get ile gönderdiğim veriyi hiç bir tanımlama yapmadan direk okuyabilirim:

 


<?php
echo $isim;
?>

Bu her ne kadar ilk bakışta bir kolaylık gibi görünsede sistem için bir açık demektir. Bir kullanıcı giriş kontrolü yazdığımızı düşünelim  kontrol değişkenini tahmin edebilen birisi bir kaç denemede sisteminize girebilecektir. Yani sayfayı “a.php?giris=1” olarak çağıran bir kullanıcı hiç kontrole uğramadan üye işlemlerini yapabilecektir.

 

<?php
if($kullaniciAd=='kullanici' && $sifre=='sifre')
    $giris=1;

if(isset($giris))
    echo 'Üye';//Üye ise bu bloğa gelir
else
    echo 'Üye değil';//Üye değil ise bu bloğa gelir
?>

Örnekler çoğaltılabilir. Bunu engellemek için global değişkenleri kapatmalıyız. php.ini dosyanızın “register_globals” ile başlayan satırını bulun ve o satırı “register_globals = Off” şeklinde değiştirip bilgisayarı yeniden başlatın.

Optimization WordPress Plugins & Solutions by W3 EDGE