• 24-05-2021, 12:36:00
    #1
    Herkese selamlar;
    Bildiğiniz üzere PHP'de SQL İnjection ile veritabanına sızma olayı ve çeşitli kayıtları değiştirebilme olanakları var kötü niyetli insanların, mysqli'de bir şekilde sızabiliyorlardı diye biliyorum.PDO'da SQL Injection olayı varmı bilginiz varmı ? Yada önereceğiniz bir method varmı bunun için?
  • 24-05-2021, 12:37:22
    #2
    Üyeliği durduruldu
    Buradaki Kaynaktan Bilgi Sağlayabilirsiniz:https://kevinsmith.io/protect-your-p...-sql-injection
  • 24-05-2021, 12:38:21
    #3
    Selamlar, bahsettiğiniz konu tek başına yeterli değildir. Url rewrite kullanmanız gerekir , değişkenleri muhakkak temizleyerek alın , yine veri tiplerini kontrol edin yani string/int gelmesi gereken yerden gerçekten bu şekilde veri geliyor mu gibi tüm senaryoları düşünmeniz gerekir. Bu benim yazdıklarım başlıca 2-3 konudur, zamanla tecrübe ederek anlarsınız. Hacklendiğiniz zaman üzülmeyin, açığınızı tespit edip onarın, bu sizi bizim söyleyeceklerimizden daha fazla geliştirecektir.
  • 24-05-2021, 12:41:40
    #4
    Gelen veri istediğiniz şekilde geliyorsa sıkıntı yoktur hocam sql sorgunuz değil onun üstü önemli yani.
  • 24-05-2021, 12:42:45
    #5
    alperenalpa adlı üyeden alıntı: mesajı görüntüle
    selamlar, bahsettiğiniz konu tek başına yeterli değildir. Url rewrite kullanmanız gerekir , değişkenleri muhakkak temizleyerek alın , yine veri tiplerini kontrol edin yani string/int gelmesi gereken yerden gerçekten bu şekilde veri geliyor mu gibi tüm senaryoları düşünmeniz gerekir. Bu benim yazdıklarım başlıca 2-3 konudur, zamanla tecrübe ederek anlarsınız. Hacklendiğiniz zaman üzülmeyin, açığınızı tespit edip onarın, bu sizi bizim söyleyeceklerimizden daha fazla geliştirecektir.
    seflink işleminden bahsediyorsaniz evet o işlemi gerçekleştirdim
  • 24-05-2021, 12:44:32
    #6
    prepare ve execute ile kullanım yaparsanız injection'a karşı korunmuş olursunuz.(100% kesin değil, internette dolaşan bilgi ve kendi deneyimlerim) query ile çalıştırırsanız injection'a karşı açık olur. Yinede her ihitmale karşı mysql ile işlenicek veriler üzerinde denetim yapmak daha sağlıklı olacaktır
  • 24-05-2021, 12:45:04
    #7
    Sinemium adlı üyeden alıntı: mesajı görüntüle
    Gelen veri istediğiniz şekilde geliyorsa sıkıntı yoktur hocam sql sorgunuz değil onun üstü önemli yani.
    Bildiğimiz PDO Methodlarını kullandım işte diyelim

    $veri=$db->prepare("SELECT * FROM veri WHERE veri_id=:id");
    $veri->execute(array("id"=>$_POST['id']));
    $veriCek=$veri->fetch(PDO::FETCH_ASSOC);
  • 24-05-2021, 12:45:27
    #8
    mikropiks adlı üyeden alıntı: mesajı görüntüle
    prepare ve execute ile kullanım yaparsanız injection'a karşı korunmuş olursunuz.(100% kesin değil, internette dolaşan bilgi ve kendi deneyimlerim) query ile çalıştırırsanız injection'a karşı açık olur. Yinede her ihitmale karşı mysql ile işlenicek veriler üzerinde denetim yapmak daha sağlıklı olacaktır
    Query yerine sürekli prepare kulladım hocam
  • 24-05-2021, 12:53:51
    #9
    SQL incejection dan korunmanin en güzel yolu gelen veri isteğini direkt where gibi yapılarla aratmak yerine once veri tabanı süzülür daha sonra gelen istek string olarak rowlarda aratilir. Yani kullanicilar sizin SQL cümlelerinizin içerisine müdahale edememiş olur.

    örneğin : kullanici girişi yapılacaksa yalnızca ilgili verilerin tamamı Datareader gibi nesneler kullanarak alinir ve gelen request Datareader da olup olmadığ kontrol ettirilir. Bu sekilde %100 korunursunuz. Performans için birşey diyemem.