İçeriğe geç

Sql injection (ARCH302)

Anahtar dotnet.security.sql-injection · Önem error · Kategori security · CWE CWE-89

Kullanıcı girdisinin SQL metnine doğrudan birleştirilmesi saldırganın sorguyu değiştirmesine olanak tanır. Parametreler girdiyi koddan ayırır.

var cmd = new SqlCommand(
"SELECT * FROM Users WHERE Name = '" + name + "'", conn);
var reader = cmd.ExecuteReader();
var cmd = new SqlCommand(
"SELECT * FROM Users WHERE Name = @name", conn);
cmd.Parameters.AddWithValue("@name", name);
var reader = cmd.ExecuteReader();

Tüm değişken girdiler için parametreli komutlar veya bir ORM kullanın; dize birleştirme ya da interpolasyonla SQL oluşturmayın.