Üye Girişi
 
Şifremi unuttum | Kayıt ol
 
Beni Haberdar Et
       
 
Sayaç
Şu an bağlılar
6
 
Bugün gelenler
100
 
Toplam Ziyaretçi
25758
 
 
Özgürlük İçin !
Pardus... Özgürlük İçin...
 
 
FORMLARDA $_SERVER['PHP_SELF'] KULLANIMINDAKİ TEHLİKE

Merhaba, bu yazımda form oluştururken action kısmında kullandığımız $_SERVER['PHP_SELF'] yerleşik değişkeninin oluşturduğu açıktan bahsedeceğim. Bu kullanımın oluşturduğu açık XSS açığıdır. Saldırgan bu açıktan faydalanıp sitemize zarar verebilir.

Bu makalede nasıl zarar verilir ? sorusundan çok nasıl korunulur ? sorusuna cevap vermeye çalışacağım.

Öncelikle, bu açığı nasıl kaparız sorusuna cevap vereyim;

<form method="post" action=" <?php print htmlspecialchars($_SERVER['PHP_SELF']) ">
.... form elemanları
...
...
</form>

Görüldüğü gibi $_SERVER['PHP_SELF'] değişkenini yazdırırken htmlspecialchars fonksiyonunu kullanıyoruz. Yani $_SERVER['PHP_SELF'] değişkeninde html karakterleri varsa bunları pasifleştiriyoruz. Eğer pasifleştirmezsek sitemizdeki bu ufak ama etkili tehlike devam eder. $_SERVER['PHP_SELF']  ile normal bir form oluşturup sayfanın kaynak koduna baktığımızda sıradışı birşey görünmez;

ornek.php

<form method="post" action=" /ornek.php">
.... form elemanları
...
...
</form>

http://www.site.com/ornek.php ile ulaştığımız web sayfamızda adres satırını şu şekilde değiştirdiğimizde ekranda php-xss yazan bir uyarı kutucuğu görürüz.

http://www.site.com/ornek.php/%22%3E%3Cscript%3Ealert('php-xss')%3C/script%3E

Uyarıya tamam diyip sayfanın kaynak koduna baktığımızda yukarıdaki görüntüden farklı bir görüntü görürürüz.

<form method="post" action="/ornek.php/"><script>alert('php-xss')</script>">
.... form elemanları
...
...
</form>

Başarılı bir şekilde bu javascript kodu sayfamızın kodlarına enjekte edilmiş durumda. Oysa ki $_SERVER['PHP_SELF'] yazarken htmlspecialchars kullanıp yukarıdaki javascript kodunu adres satırına yazsaydık bir uyarı kutusu çıkmayacaktı karşımıza. Aynı zaman da sayfanın kaynak koduna baktığımızda daha farklı birşey görecektik.

 

<form method="post" action="/ornek.php/&quot;&gt;&lt;script&gt;alert('php-xss')&lt;/script&gt;">
.... form elemanları
...
...
</form>

Bu şekilde daha güvenli olduğu kesindir. Umarım açıklayıcı bir şekilde anlatabilmişimdir. Bu makalayi yabancı kaynakları derleyerek elimden geldiğinde az ve öz bir şekilde size aktarmaya çalıştım.

 
20/04/2010 - Bu sayfa 289 kez görüntülenmiştir.
 
Sayfa etiketleri : PHP_SELF , XSS , htmlspecialchars , güvenlik ,
 
                           


    

 
YORUMLAR - Toplam 1 yorum
 


Ziyaretçi yazmış :
Güzel bir konuya değinmişsin. Sağ ol üstad. Hiç dikkat etmediğim bir şeydi.
 02/08/2010-16:20:46
%61   %39


      Sayfa : 1
Ziyaretçi... yorum yazıyor
 




Arama
              
 
Etiketler
strip_tags  
Javascript  
şifre  
PHP  
atama  
aynı  
anda  
Verileri  
  
güvenlik  
IIS  
ile  
sanal  
e-ticaret  
 
 

 

Anket
Hangi tarayıcıyı kullanıyorsunuz ?
 Chrome
 Firefox
 Internet Explorer
 Opera
 Safari
 

Kuark7