SORU
18 EYLÜL 2015, Cuma


Güvenli parametre bir dizi değil ne zaman bir SQL sorgu stratejisinin değil mi?

SQL injection, açısından tamamen string bir parametre stratejisinin gerekliliğini anlamak; bu kitaptaki en eski numaralardan biri. Ama ne zaman haklı gösterilemezdeğilSqlCommand stratejisinin? Herhangi bir veri türleri kabul "" stratejisinin? güvenli değil

Örneğin: kendimi bir yere . kabul etmiyorum ^em>yakınbir uzman, SQL, ama ben hiç düşünemiyorum durumlarda olur potansiyel olarak savunmasız SQL enjeksiyon için kabul et bool int ve sadece bağlamak doğru içine sorgu.

Benim varsayım doğru mu, ya da bu potansiyel olarak benim programa büyük bir güvenlik açığı çıkabilir mi?

Açıklama için, bu soru, "parametre" gibi bir şey sanırım . dediğimde kesinlikle yazılan Dil; Bir olan etiketlenir public int Query(int id).

CEVAP
18 EYLÜL 2015, Cuma


Güvenli olduğunu düşünüyorumteknik olarakkorkunç bir alışkanlık haline almak için değil ama. Gerçekten bu gibi sorgu yazma olmak ister misin?

var sqlCommand = new SqlCommand("SELECT * FROM People WHERE IsAlive = "   isAlive   
" AND FirstName = @firstName");

sqlCommand.Parameters.AddWithValue("firstName", "Rob");

Bu da bir tür bir dizeye bir tamsayı (, ismine rağmen - harf içeren bir numara Sanırım) değiştiği durum savunmasız bırakır.

Yani, string int EmployeeNumber türünü değiştirdik ama sql sorguları güncellemek için unuttum. Oops.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunliu

    bunliu

    2 Mayıs 2007
  • The Warp Zone

    The Warp Zon

    24 AĞUSTOS 2007
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012