Ekle/Güncelle ve Seçme Sorgularını kullanan bir DB2 veritabanı kullanan bir .net web sitesinde çalışıyorum. SQL Injection hakkında araştırma yaptım ve SQL Injection'dan kaçınmak için sorgumu parametrelendirdiğime inanıyorum. Doğru bir şekilde yapıp yapmadığımı kontrol edebilir misiniz ve bunu yapmanın daha iyi bir yolu ya da daha yeterli yolu var mı?C# - Parametreli Sorgu
strInsert = "INSERT INTO DATABASE.Table(NUMBER,SIGNATURE,MESSAGE,CDATE,CTIME) VALUES (?,?,?,?,?)";
DB2Command cmdInsertQuery = new DB2Command(strInsert, db2Connection1);
cmdInsertQuery.Parameters.Add("NUMBER", i);
cmdInsertQuery.Parameters.Add("SIGNATURE", strSignature.Trim());
cmdInsertQuery.Parameters.Add("MESSAGE", strMessage.Trim());
cmdInsertQuery.Parameters.Add("CDATE", DateTime.Now.ToShortDateString());
cmdInsertQuery.Parameters.Add("CTIME", DateTime.Now.ToShortTimeString());
cmdInsertQuery.ExecuteNonQuery();
Sorgu, verileri doğru bir şekilde ekler ve iyi çalışır.
Bana iyi görünüyor kullanmaktır. SQL enjeksiyonunun farkında olduğunu görmekten memnun oldum. SO, insanların açıkça görmediği sorularla dolu ve her seferinde beni rahatsız ediyor. Sıklıkla her gün kullandığım önemli yazılımın ne kadarını merak ediyorum - ör. Online pişirme yazılımı, vb. - SQL enjeksiyon risklerini düzgün bir şekilde ele almamıştır. –
Belki daha iyi http://codereview.stackexchange.com/ – HoneyBadger
içinde yerleştirildi Teşekkürler. Kullanıyor ?,?,? iyi veya daha iyi değerler (@NUMBER vs) kullanıyor mu? @ Kullanarak bazı insanlar gördüm ve sadece birkaç kullanarak gördüm?,?,? vb – user6097989