• 05-10-2014, 10:25:06
    #1
    SQL İnjection tamamen server odaklı çalişmaktadır. SQL Açıkları user inputlarının filtrelenmesinde oluşur. Xss ile SQL arasındaki fark ne derseniz xss tarayıcı bazlı çalışır, SQL ise server ve kullanıcı odaklıdır.

    XSS: WEB APPLICATION > USER > BROWSER > USER

    SQL: WEB APPLICATION > USER > DATABASE > USER

    Hemen bir örnek ile açıklayalım

    <?php
    $id= $_GET[’id’];
    ....
    $query= "SELECT * FROM users WHERE id= ’ “ .$id." ;"
    ...
    ?>
    Gördügünüz üzere php dinamik sayfamızda herhangi bir filtreleme yok buyüzden ' veya 'Q gibi karakter ekledigimizde database hatası gelicek ve kişi sql sorgusu göndermeye çaliştiginda admin bilgilerini çekebilecek Şimdi burada cok kısa bir filtreleme ve yasaklama işlemi yapicagiz

    <?php
    $id= $_GET[’id’];
    ....
    $wk = array("\\\\\\\\"", "\\\\\\\\\\\\\\\\", "/", "*", "’", "=", "-
    ", "#", ";", "<", ">", "+", "%");
    
    $id = str_replace($wk, "", $id);
    
    $query= "SELECT * FROM users WHERE id= ’ “ .$id." ;"
    ...
    ?>
    Bu yukaridakı $wk = arry satırında sorgu gönderilmemesi için çeşitli filtreleme, engelleme yaptik bu sayede karakter eklense bile sorgu gönderilmeyecektir.
    • Kocaelim
    • kskonline
    Kocaelim ve kskonline bunu beğendi.
    2 kişi bunu beğendi.
  • 15-10-2014, 12:56:20
    #2
    Üyeliği durduruldu
    paylaşım için teşekkürler.