8 Mart 2010, PAZARTESİ
C basit SQL sorguları kaçmayı nasıl# SQL Server için
SQL dize beklediği bir API kullanıyorum. Ben bir kullanıcı giriş, kaçış ve API iletin. Kullanıcı giriş oldukça basit. Sütun değerlerini sorar. Bunun gibi
string name = userInput.Value;
O zaman ben bir SQL sorgu oluşturmak:
string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
name.replace("'", "''"));
Bu yeterince güvenli mi? Yok, sütun değerleri güvenli hale getiren basit bir kütüphane işlevi vardır: değil
string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
SqlSafeColumnValue(name));
API veritabanı olarak SQL Server kullanmaktadır.
CEVAP
8 Mart 2010, PAZARTESİ
SqlParameter kullanarak bir seçenek değil, sadece '" (iki tek tırnak, çift tırnak değil) dize hazır bilgi. değiştir beri İşte bu kadar.
-Downvoters: tekrar oku soruyu ilk satırı. "Parametreler" da içgüdüsel tepkim.
EDİT: Evet, SQL enjeksiyon saldırıları hakkında biliyorum. Eğer bu alıntı o savunmasız olduğunu düşünüyorsanız, lütfen çalışan bir counterexample sağlamak. Değil bence.
Bunu Paylaş:
Nasıl Server tablo sütun olup olmadığı...
Nasıl tarih sadece SQL Server datetime...
Nasıl SQL Server ile kullanma İÇ BİRLE...
İlk satır Katılmak için Nasıl SQL Serv...
Nasıl 'Merhaba Dünya' Manage...