THT DUYURU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

chat
Seçenekler

Form Değişkenlerin Kontrolü ve Cross Site Scripting [php]

CmcEagle - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
06/2013
Nereden:
Spain
Yaş:
33
Mesajlar:
136
Konular:
111
Teşekkür (Etti):
1
Teşekkür (Aldı):
12
Ticaret:
(0) %
23-06-2013 17:40
#1
Form Değişkenlerin Kontrolü ve Cross Site Scripting [php]



Yine yüzlerce kere değinilen bir konu, motto şu: "Kullanıcıya asla güvenme!" . Kullanıcıdan aldığımız her şeyi önce acaba bu nükleer bir atık mı, hediye paketi süsü verilmiş bir bombamı, yoksa masum bir istek mi diye eldivenleri takıp laboratuar şartlarında incelememiz gerekir. Bir örnek vermek gerekirse şu yeter sanırım:
2003 yılında Hotmail Passport hesabında şöyle bir olay gerçekleşmişti:

https://tik.lat/ctgmv kurban@hotmail.com&id=&cb=&prefem= hacker@attacker.com&rst=1 bu şekilde kurban@hotmail.com kullanıcısının bilgileri hacker@attacker.com maline gönderiliyordu. Ve bu açığa sebep olan Microsoft gibi bir şirket idi! Buradan hareketle mail adresi ve kullanıcı adının girildiği ve karşılığında parola kurtarma mailinin adresinize geldiği bir senaryo:

Kod:
<form action="reset.php" method="GET">  
    <table>  
      <tr><td>Kullanıcıadı</td><input type="text" name="kad"/></td></tr>  
      <tr><td>Parola</td><input type="text" name="email"/></td></tr>  
      <tr><td></td><td><input type="submit" value="Kurtar" /></td></tr>  
    </table> 
 </form>
http://localhost/reset.php?kad=osman&email= osman@orhan.com

Kod:
<?php  
      $kad    = $_GET['kad'];  
      $email = $_GET['email];  
    
      function kurtar($kad ,$email) 
      {  
         //Kullanıcı adını veritabanından sorgula ve email adresine gerekli bilgileri yolla.  
      }  
  ?>
http://localhost/reset.php?kad=kamuran&email= osman@osman.com ile kamuran isimli kullanıcının bilgileri osman@osman.com a gönderiliyor.
Sırf siz email adresini kontrol etmediğiniz için. Güvenlik için kullanıcıdan gelen verileri kontrol etmeliyiz, $email değişkenindeki değerin bir email olup olmadığını küçük bir email_valid() fonksiyonu ile yapabiliriz ayrıca adresinin bu kullanıcıya ait olup olmadığını kontrol etmeliyiz, ondan sonra email adresine bir mail geçebilirsiniz!

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler