• 13-11-2016, 01:09:31
    #1
    Arkadaşlar codeingiter kullanıyorum daha doğrusu kullanmaya çalışıyorum desek yeridir bir forumda şöyle birşey gördüm codeigniter siteme sql açığı ile girip şifremi değiştirdiler diyor adam framework'de sql açığı varmı önlemek için ne yapabilirmi mesel insert sorgusunu şu şekillde kullanıyorum bilgi verebilecek olan varmı.

    $veriler = array(
                        "kullaniciadi" => $kulladi,
                        "sifre" => md5(sha1($sifre)),
                        "email" => $email,
                        "isim" => $isim,
                        "skype" => $skype,
                        "kayittarihi" => date("Y/m/d h:m:s"),
                        "songiris" => null,
                        "sonip" => $this->input->ip_address(),
                    );
                    $kayit = $this->uye_model->kayit($veriler);
    
    Uye_model ->>>
    
     public function kayit($veri) {
            $sonuc = $this->db->insert('kullanicilar', $veri);
            return $sonuc;
        }
    sql açığı kullanılabilirmi burada mesela yada select'de nasil bir önlem alabilirim.
  • 13-11-2016, 01:21:49
    #2
    Üyeliği durduruldu
    üye modelini kendiniz oluşturmak yerine ion auth kullanarak başlayabilirsiniz.
  • 13-11-2016, 01:23:47
    #3
    ACKGZ adlı üyeden alıntı: mesajı görüntüle
    üye modelini kendiniz oluşturmak yerine ion auth kullanarak başlayabilirsiniz.
    Hocam kendim oluşturmayı tercih ediyorum hem sistemi kavramak adına hemde alışkanlık diyelim sql açığı için birşey diyebilirmisin?
  • 16-11-2016, 17:17:17
    #4
    config bölümününden $config['global_xss_filtering'] = FALSE;
    ayarını TRUE olarak değiştirirsen sql injection'a karşı önlem alabilirsin onun dışında form validation konusunu da kurcalamanı tavsiye ederim.
  • 16-11-2016, 17:35:38
    #5
    Pek kullanmadım ama biraz bakınıverdim. CodeIgniter'da DB sınıfına tanımlı escape metodunu kullanabilirsin. Yani:

    $veriler = array( 
        "kullaniciadi" => $this->db->escape($kulladi), 
        "sifre" => md5(sha1($sifre)), 
        "email" => $this->db->escape($email), 
        "isim" => $this->db->escape($isim), 
        "skype" => $this->db->escape($skype), 
        "kayittarihi" => date("Y/m/d h:m:s"), 
        "songiris" => null, 
        "sonip" => $this->input->ip_address(), 
    );
    Kolay gelsin.
  • 23-01-2017, 06:19:54
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    form verilerini valid yaparsan sorun kalmaz.
  • 24-01-2017, 17:33:29
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Bir kaç yöntem var. Öncelikle sessionları database ' e alın ve Pdo kullanın. Xss filtering aktif edin config den. Form validation konusuna birazcık ci guide dan bir bakın. Son olarak post ve get ler için security key olusturun buda aynı sekılde guide da mevcut kolayca erisip kullanabılırsınız. Formlarınız için form_open() kullanın security token için . Bunların haricinde ci da index.php de environment değerini development dan production a alın. Kafanız rahat olsun =).

    Saygılarımla İyi Günler Dilerim.
  • 04-03-2017, 22:01:50
    #8
    Codeigniterda db metodlarında veriler zaten otomatikmen mysql_escape_string 'den geçiriliyor. Salt sorgularda ise $this->db->escape_str() veya $this->db->escape() kullanabilirsiniz. Ayrıca form verilerinde form_validation sınıfını kullanırsanız işiniz çok kolaylaşır.
  • 23-03-2017, 10:57:58
    #9
    $this->db->insert() dediğin zaman otomatikman tüm değerler escape ediliyor ve sql injection diye bir problem kalmıyor. SQL injection ne zaman olur? $this->db->query($sql) şeklinde yazdığın zaman olabilir. eğer $sql değişkenindeki sorguya gelen verileri escape etmezsen tüm veritabanını indirirler aşşaa. query() metodu kullanmanızı önermem. onun yerine insert(), update(), select() falan gibi metodları kullanın bu daha güvenli.
    • ufukt51
    ufukt51 bunu beğendi.
    1 kişi bunu beğendi.