Sql ' Karakteri Problemi

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek

    c# ile sqlite üzerine verileri ayıklayıp kaydederken belirli satırlarda duruyordu başta sebebini anlayamadım ama sonradan fark ettim karşılaştırma yaptığım hücrenin içerisinde ' karakteri var ve sql karakteri olduğu için problem oluyor. Bu noktada nasıl bir çözümle sorunu halledebilirim?

    Sorgu;

    update firma set tel='tel[i]' where firma_adi='firma_adi[i] ';

     

    Hataya düştüğünde firma_adi[i] dizisinin içinde "  '  " karakteri içeriyor ve bundan dolayı hata veriyor.

    Sorguyu çalıştırmadan önce firma_adi[i] 'nı replace ile ' karakterinden ayıklayabilirim ama bu seferde where ile kıyaslama tutmayacağından sorgu geçersiz olacak.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Hocam bu güvenlik açığı yaratır.

    Sana tavsiyem ORM kullanmandır.

    Onun dışında SqlParameter kullanabilirsin.

    En kötü ihtimalle String başına @ işareti koy.

    Yani ;

    String tel=@""+tel[i];
    String firmaAdi=@""+firma_adi[i];
    
    String query="update firma set tel=' "+tel+" ' where firma_adi=' "+firmaAdi+" '";

     

     


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek
    MhmdAlmz bunu yazdı

    Hocam bu güvenlik açığı yaratır.

    Sana tavsiyem ORM kullanmandır.

    Onun dışında SqlParameter kullanabilirsin.

    En kötü ihtimalle String başına @ işareti koy.

    Yani ;

    String tel=@""+tel[i];
    String firmaAdi=@""+firma_adi[i];
    
    String query="update firma set tel=' "+tel+" ' where firma_adi=' "+firmaAdi+" '";

     

     

    c#'ta Sqlite insert kullanımına bakarken stackoverflow'da da bahsetmişlerdi sql injection zaafiyetinden. Ama kendi kendime bir şeyler yaptığım için pekte önemsemedim hocam kullanımı. Ancak ORM not aldım, araştıracağım. 

    Ayrıca yazdıklarınıza uyarladım ancak yine aynı yerde hata verdi. Atladığım başka bir şey mi var acaba hocam?

    Hata görüntüsü ekte hocam.

    https://prnt.sc/ouaqfg

     

     

    Https tarafından 18/Ağu/19 22:10 tarihinde düzenlenmiştir
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    Https bunu yazdı
    MhmdAlmz bunu yazdı

    Hocam bu güvenlik açığı yaratır.

    Sana tavsiyem ORM kullanmandır.

    Onun dışında SqlParameter kullanabilirsin.

    En kötü ihtimalle String başına @ işareti koy.

    Yani ;

    String tel=@""+tel[i];
    String firmaAdi=@""+firma_adi[i];
    
    String query="update firma set tel=' "+tel+" ' where firma_adi=' "+firmaAdi+" '";

     

     

    c#'ta Sqlite insert kullanımına bakarken stackoverflow'da da bahsetmişlerdi sql injection zaafiyetinden. Ama kendi kendime bir şeyler yaptığım için pekte önemsemedim hocam kullanımı. Ancak ORM not aldım, araştıracağım. 

    Ayrıca yazdıklarınıza uyarladım ancak yine aynı yerde hata verdi. Atladığım başka bir şey mi var acaba hocam?

    Hata görüntüsü ekte hocam.

    hata_goruntusu

     

    Hocam ekran görüntüsünü göremiyorum.

    Muhtemelen @ Kullanımını yanlış yazmışımdır. 

    Mobilim şuan bakamıyorum. 

    @ kullanımını araştırırsan bulursun bu şekilde çözersin.

    Yada şöyle -->>>>              \'

    tarz bir kullanım var. Bu da işini görür.


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek
    MhmdAlmz bunu yazdı
    Https bunu yazdı
    MhmdAlmz bunu yazdı

    Hocam bu güvenlik açığı yaratır.

    Sana tavsiyem ORM kullanmandır.

    Onun dışında SqlParameter kullanabilirsin.

    En kötü ihtimalle String başına @ işareti koy.

    Yani ;

    String tel=@""+tel[i];
    String firmaAdi=@""+firma_adi[i];
    
    String query="update firma set tel=' "+tel+" ' where firma_adi=' "+firmaAdi+" '";

     

     

    c#'ta Sqlite insert kullanımına bakarken stackoverflow'da da bahsetmişlerdi sql injection zaafiyetinden. Ama kendi kendime bir şeyler yaptığım için pekte önemsemedim hocam kullanımı. Ancak ORM not aldım, araştıracağım. 

    Ayrıca yazdıklarınıza uyarladım ancak yine aynı yerde hata verdi. Atladığım başka bir şey mi var acaba hocam?

    Hata görüntüsü ekte hocam.

    hata_goruntusu

     

    Hocam ekran görüntüsünü göremiyorum.

    Muhtemelen @ Kullanımını yanlış yazmışımdır. 

    Mobilim şuan bakamıyorum. 

    @ kullanımını araştırırsan bulursun bu şekilde çözersin.

    Yada şöyle -->>>>              \'

    tarz bir kullanım var. Bu da işini görür.

    https://prnt.sc/ouaqfg

    Kontrol ediyorum tekrar hocam.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    Https bunu yazdı
    MhmdAlmz bunu yazdı
    Https bunu yazdı
    MhmdAlmz bunu yazdı

    https://prnt.sc/ouaqfg

    Kontrol ediyorum tekrar hocam.

    using (SqlCommand mySqlCommand = new SqlCommand("update firma set tel=@tel where firma_adi=@firmaAdi", conn);
        {
            mySqlCommand.Parameters.AddWithValue("@firmaAdi", tel[i]);
            mySqlCommand.Parameters.AddWithValue("@tel", firma_adi[i]);
            mySqlCommand.Connection.Open();
            mySqlCommand.ExecuteNonQuery();
        }



    Bunu kullan hocam başın ağrımasın.

    Parametre kullanımını öğren en kötü ORM den önce.


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
Toplam Hit: 1301 Toplam Mesaj: 6
c# sql sqlite