• 11-12-2010, 22:45:33
    #1
    Sitemdeki veri ekleme ve sorgulama ile ilgili işlemleri aşağıdaki yöntemleri kullanıyorum. bu yöntemler SQL Injeksiyonla sitemin hacklenmesine neden olabilirmi ? çünkü sitem hacklendi ve siteyi hackleyin kişi dosyalara müdahale etmeden veritabanına ulaşmış ve veritabanındaki tablolara eklediği sayfa yönlendirme koduyla sitemi free hosttaki bir hack indexine yönlendirmiş.

    aşağıdaki kodlar SQL Injeksiyon imkan veriyorsa kodlarımı nasıl değiştirmem lazım


    $sql = mysql_query("SELECT * FROM tablo", $baglanti) or die("Hatasi olustu");
    $row_sql = mysql_fetch_assoc($sql);
    $sql = mysql_query("INSERT INTO tablo (adi_soyadi, email, site, url, kategori) VALUES ('$adi_soyadi', '$email', '$site', '$url', '$kategori')", $baglanti) or mysql_error();
  • 11-12-2010, 22:59:43
    #2
    $adi_soyadi formdan gelen POST yada GET degerlerinide yaz
    yani
    $adi_soyadi =$_POST['adi_soyadi'];
    dediysen tehlikeli
    kodların tamamını ver
  • 11-12-2010, 23:09:43
    #3
    kodu öm olarak yolladım...
  • 11-12-2010, 23:31:11
    #4
    buraya yazki bilmeyenlerde aynı hataları yapmasın kardeş
  • 11-12-2010, 23:42:47
    #5
    evet merak ettim ben de neden olmuş
  • 11-12-2010, 23:47:02
    #6
    evet, arkadaşlar benimle aynı hataya düşmemek için GET veya POST metoduyla çektiğiniz verileri değişkene atamayı şu şekilde yapın. enazından hacklenme olasılığını bir kademe azaltıyor.

    benim gibi bilmeyenler için strip_tags(); fonksiyonu form alanlarından <> tagları yollamayı engelliyor...

    enc0der kardeşime yardımlarından dolayı ayrıca teşekkür...

    $adi_soyadi = strip_tags($_POST['adi_soyadi']);
  • 11-12-2010, 23:59:09
    #7
    hm evet taglar çok önemli
    geçmiş olsun
  • 12-12-2010, 12:44:04
    #8
    medesan adlı üyeden alıntı: mesajı görüntüle
    evet, arkadaşlar benimle aynı hataya düşmemek için GET veya POST metoduyla çektiğiniz verileri değişkene atamayı şu şekilde yapın. enazından hacklenme olasılığını bir kademe azaltıyor.

    benim gibi bilmeyenler için strip_tags(); fonksiyonu form alanlarından <> tagları yollamayı engelliyor...

    enc0der kardeşime yardımlarından dolayı ayrıca teşekkür...

    $adi_soyadi = strip_tags($_POST['adi_soyadi']);
    sadece strip_tags yeterli değildir.Şu ihtimalde vardır ki kişi sizin scriptinizdeki sql injection sayesinde panele sızıpda bu veriyi eklemiş olabilir.Taglar engellersiniz ama sql kapanmadıkça tamamen korunamazsınız.
    SQL injection açığını kapatmak için ise numeric olarak sorgulamalarınızı oluşturuyor iseniz intval(); kullanmalısınız ya da string olarak oluşturuyorsanız mysql_espace_string(); kullanmalısınız.

    bu dediklerimde tam yeterli olmayabilir.bu seferde blind sql olayı var biraz karışık işler yani bunlar
  • 12-12-2010, 18:04:29
    #9
    slcQ adlı üyeden alıntı: mesajı görüntüle
    sadece strip_tags yeterli değildir.Şu ihtimalde vardır ki kişi sizin scriptinizdeki sql injection sayesinde panele sızıpda bu veriyi eklemiş olabilir.Taglar engellersiniz ama sql kapanmadıkça tamamen korunamazsınız.
    SQL injection açığını kapatmak için ise numeric olarak sorgulamalarınızı oluşturuyor iseniz intval(); kullanmalısınız ya da string olarak oluşturuyorsanız mysql_espace_string(); kullanmalısınız.

    bu dediklerimde tam yeterli olmayabilir.bu seferde blind sql olayı var biraz karışık işler yani bunlar
    onun yerine açığı kapatmak en mantıklısı deilmi selçuk.ondan sonra numeric veya intval'e alabilir.açık olmadıktan sonra blind değil kralını kassalar sorunsal olmaz.

    Kardeş veritabanından sitene çağırdığın sayfaların sorgularını nasıl yapıyosun.tırnak işaretlerine vb dikkat.