• 25-07-2010, 17:17:05
    #1
    Bu konu hakkında bir çok kaynak mevcut ancak her makalede farklı bir yöntem farklı bir kod verilmiş, birini yapsam diğeriyle saldırırlar diye düşünüyorum, şu anda bir script yazıyorum ve üye kayıt, üye giriş, arama, kullanıcının veri eklemesi gibi kısımlarda ne gibi yöntemlerle %100 sql injection'dan korunabilirim?
  • 25-07-2010, 17:20:49
    #2
    Alıntı
    $injectcheck = preg_replace("[^À-ÿa-zA-Z0-9\\\-\.\,\:\s\r\t\n ]",'',$injectcheck);
    bu şekilde çoğu zararlı karakteri temizletebilirsin
  • 25-07-2010, 17:29:09
    #3
    husee3 adlı üyeden alıntı: mesajı görüntüle
    bu şekilde çoğu zararlı karakteri temizletebilirsin
    tamamen yeterli olacak mıdır peki?

    edit: kabalık ettim, teşekkürler öncelikle.
  • 25-07-2010, 17:37:56
    #4
    Muzo adlı üyeden alıntı: mesajı görüntüle
    tamamen yeterli olacak mıdır peki?

    edit: kabalık ettim, teşekkürler öncelikle.
    eğer gelen değerler sayıysa sayı olup olmadığını kontrol et ( is_numeric , intval )
    gelen değerler string is mysql_REal_escape_string fonksiyonuyla filtrele
  • 26-07-2010, 14:07:46
    #6
    htmlentities veya strip_tags kullanabilirsin bana sorarsan strip_tags kullan güzel bişi
  • 26-07-2010, 14:22:46
    #7
    Güvenlik konusunda yetersiz olduğunuzu düşünüyorsanız https://www.r10.net/php/490072-hersey...udan-ucuz.html sdemirkeser'in eğitim setini alabilirsiniz.
  • 27-07-2010, 10:48:58
    #8
    mysql_real_escape_string php6 da olmayacak diye kulağıma çalındı. bi sürü script sorun çıkartcak gibime geliyor.
  • 27-07-2010, 14:03:25
    #9
    Eposta Aktivasyonu Gerekmekte
    zee adlı üyeden alıntı: mesajı görüntüle
    mysql_real_escape_string php6 da olmayacak diye kulağıma çalındı. bi sürü script sorun çıkartcak gibime geliyor.
    http://tr.php.net/manual/en/function...ape-string.php

    öyle bişey olsa yazarlardı.

    Genel olarak konuya gelirsek, öncelikle sihirli tırnaklar(magic quotes)ın açık olup olmadığına bakmak gerekir.Şayet açıksa, açıksa kendisi escape ediyor.Ama kontrolü ele almak için, gpc açıksa stripslashes() ile gpc nin yaptığı işlevi geri çeviririz.Daha sonra htmlspecialchars ile html karakterlerinin yarattığı problemden kurtuluruz.Ayrıca ' ve " karakterlerini de bizim için hallediyor.

    Yanlış anlamayın bu karakterleri yok etmiyor.
     <
    bunun gibi şekillere getiriyor.Yani < karakteri ekranda normal gözüküyor ama kaynakta yukarda dediğim gibi gözüküyor.Böylece html karakteri işlevi görmüyor.

    Bundan sonra birde \ yani ters slas işareti kalıyor.Bu karakterle başlayan bazı ifadelerde var.Bunları da yine \ kullanarak escape edicez.Elle yazılcak bir fonksiyonda bu işi görebilir.Ya da direk kolay yoldan mysql_real_escape_string
    kullanarak o işi de çözebiliriz.